- ベストアンサー
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をご教授いただけると助かります。 よろしくお願い致します。
- みんなの回答 (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;
その他の回答 (1)
- pkh4989
- ベストアンサー率62% (162/260)
以下の例を参考にしてください。 <パターン(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
お礼
自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。 ありがとうございました。
お礼
自分でもSQLについていろいろ調べて、ご回答いただく前にDISTINCTを指定することで解決しました。お騒がせいたしました。 ありがとうございました。