• 締切済み

access・複数のテーブル・重複除外したデータ

accessで複数のテーブルで重複しないレコードだけを抽出するSQL文を知りたいです。 フィールドは多数あり、「フィールドの内容が全て一致するレコード」以外のレコードを 重複しないレコードとして抽出したいと思っています。 テーブルは3つ以上ありますが、2つのテーブルで実行するSQL文でかまいません。

みんなの回答

  • naoto0216
  • ベストアンサー率46% (183/391)
回答No.6

各フィールドが異なることを評価し(○ or ×)、○で抽出し、 複数テーブルがある場合は、UNION ALL もしくはUNIONで くっつけます。 SELECT [テーブルA].[フィールド1], [テーブルA].[フィールド2] FROM テーブルA WHERE (((IIf([フィールド1]<>[フィールド2],"○","×"))="○")) UNION ALL SELECT [テーブルB].[フィールド1], [テーブルB].[フィールド2] FROM テーブルB WHERE (((IIf([フィールド1]<>[フィールド2],"○","×"))="○"));

回答No.5

一つのSQLで記述するなら、 SELECT F1, F2 FROM (SELECT * FROM テーブル1 UNION ALL SELECT * FROM テーブル2 ) AS Q1 GROUP BY F1, F2 HAVING Count(*)=1;

回答No.4

補足:クエリのデザイン

回答No.3

SELECT DISTINCTROW [couple union all query].id, [couple union all query].couple_id, [couple union all query].name, [couple union all query].sex, [couple union all query].age, Count(*) AS [couple union all queryのカウント] FROM [couple union all query] GROUP BY [couple union all query].id, [couple union all query].couple_id, [couple union all query].name, [couple union all query].sex, [couple union all query].age HAVING (((Count(*))=1)); レコードのカウント数が1のみを抽出すれば・・・。

回答No.2

> おっしゃる通り「重複しているレコードはすべて出力しない」ようにしたいです。 テーブル1 F1  F2 -------------- 001 AAA 002 BBB 003 CCC 005 DDD テーブル2 F1  F2 -------------- 001 AAA 002 BBB 004 EEE 005 DDD だとしたら、下記の2件を抽出したいということでしょうか。 F1  F2 -------------- 003 CCC 004 EEE ならば、まず、下記のユニオンクエリを作成してます。 SELECT * FROM テーブル1 UNION ALL SELECT * FROM テーブル2; このクエリを保存して、このクエリを元に集計クエリを作成して、 すべてのフィールドをグループ化します。 さらに下記のフィールドを追加します。 フィールド F1 集計    カウント 表示    □ 抽出条件  =1 以上。

回答No.1

複数のテーブルのフィールド構成はすべて同じですか。 で、「フィールドの内容が全て一致するレコード」は1レコードとして表示するということですか。 そういうことなら、ユニオンクエリで可能です。ユニオンクエリはSQLで記述する必要があたますので、クエリのSQLビューで下記のように記述してください。 SELECT * FROM テーブル1 UNION SELECT * FROM テーブル2; これで重複のない結果が出力されます。 3つのテーブルでも追加していくだけです。 SELECT * FROM テーブル1 UNION SELECT * FROM テーブル2 UNION SELECT * FROM テーブル3; それとも重複しているレコードはすべて出力しない、ということなのかな。 もし、そうなら補足してください。

hrahrara
質問者

補足

ありがとうございます。 複数のテーブルのフィールド構成はすべて同じです。 おっしゃる通り「重複しているレコードはすべて出力しない」ようにしたいです。

関連するQ&A