• ベストアンサー

ACCESS クエリ抽出する際、重複しているフィールドを取り除きたい

テーブルA テーブルB があり、そのクエリ クエリA クエリB を作ってあります。 クエリA フィールドA1 フィールドA2 クエリB フィールドB1 フィールドB2 結合は、クエリAのフィールドA1 ⇒ クエリBのフィールドB1 としており、 実行結果としては、以下のようになって抽出されます。 クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |P c       |X      |c      |Q c       |X      |c      |Q c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S d       |Y      |d      |S これを踏まえて、 重複を除いた形での実行結果として得たいパターンは以下の2つです。 <パターン(1)> クA:フィA1| a       | b       | c       | d       | ※他のフィールドは必要無し。 <パターン(2)> クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S ※4フィールドが同一になるところだけ除きたい 恐縮なのですが、この2パターンのSQLをご教授いただけると助かります。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

肝心のテーブルの情報がありませんが 適当に想像して回答します パターン1はテーブルAからフィールドA1を重複なしに取り出すだけですね SELECT DISTINCT thubanA.A1 FROM thubanA; パタ-ン2も単に今のクエリから重複を除いてやるだけでいいのでは SELECT DISTINCT thubanA.A1, thubanA.A2, thubanB.B1, thubanB.B2 FROM thubanA LEFT JOIN thubanB ON thubanA.A1 = thubanB.B1;

THUBAN
質問者

お礼

自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。 ありがとうございました。

その他の回答 (1)

  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.1

以下の例を参考にしてください。 <パターン(1)> SELECT フィールドA1 FROM テーブルA GROUP BY フィールドA1 <パターン(2)> 今のクエリに以下のように「DISTINCT」を追加すれば、良いと思います。 SELECT DISTINCT TA.A1,TA.A2,TB.B1,TB.B2 FROM テーブルA AS TA,テーブルB AS TB WHERE TA.フィールドA1 = TB.フィールドB1

THUBAN
質問者

お礼

自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう