Accessのクエリで重複レコードをチェックする(SQLはWHEREではなくHAVING)
次のようなテーブルで、名前が重複していないかチェックしたいこともあります。
![名前が重複したテーブル 名前が重複したテーブル](http://www.nishi2002.com/wp-content/uploads/2013/07/144.png)
重複レコードをチェックする重複クエリウィザードを使う場合は、「作成」‐「クエリウィザード」メニューで「重複クエリウィザード」を選択します。
![クエリウィザード クエリウィザード](http://www.nishi2002.com/wp-content/uploads/2013/07/145.png)
重複を調べるテーブル(またはクエリ)を選択して次に進みます。
![チェックするテーブルを選択 チェックするテーブルを選択](http://www.nishi2002.com/wp-content/uploads/2013/07/146-500x356.png)
重複をチェックするフィールドを選択します。ここでは、「名前」をチェックします。
![重複をチェックするフィールドを選択 重複をチェックするフィールドを選択](http://www.nishi2002.com/wp-content/uploads/2013/07/147-500x356.png)
「完了」をクリックすると、「xxxxxの重複レコード」という名前のクエリに重複結果が表示されます。ここでは、「西沢直木」が2件あることを示しています。
![重複結果の表示 重複結果の表示](http://www.nishi2002.com/wp-content/uploads/2013/07/148.png)
※「完了」ではなく「次へ」をクリックすると、結果に表示するフィールドや、クエリ名を指定することもできます。
![クエリ名を指定できる クエリ名を指定できる](http://www.nishi2002.com/wp-content/uploads/2013/07/149.png)
SQLビューで重複をチェックするSQLを入力して実行する
「作成」‐「クエリデザイン」メニューで空のクエリを作成して、SQLビューで直接SQLを入力してレコードの重複をチェックする方法もあります。
たとえば、次のようなSQLをSQLビューに入力します。
SELECT 名前, Count(名前) AS カウント FROM 重複チェック GROUP BY 名前 HAVING Count(名前)>=2;
- SELECT 名前, Count(名前) AS カウント ---「名前」「カウント」というフィールドを持つクエリを作成します。カウントフィールドは、名前の件数を集計します。
- GROUP BY 名前 --- 名前ごとに集計します。
- HAVING Count(名前)>=2 --- 名前の件数が2件以上あった場合のみ(つまり重複している)表示します。
※「2件以上あった場合は」の絞り込みは、集計結果に対して絞り込みをかけるので、全データから条件抽出するWHEREではなく、HAVINGを使います。
実行すると、名前が重複したレコードが表示されます。
![重複レコードが表示される 重複レコードが表示される](http://www.nishi2002.com/wp-content/uploads/2013/07/150.png)