- ベストアンサー
Accessでの電話番号重複チェック
- Accessを使用して10万件の顧客データ中の電話番号の重複をチェックしたい。Excelでは処理が遅くなるため、Accessを使用することにしたが、使い方がわからず困っている。
- 重複クエリを使用して電話番号(1)と(2)(3)の重複は抽出できたが、(2)が(3)と重複しているデータの抽出方法や、(1)同士・(2)同士・(3)同士の重複データの抽出方法がわからない。
- 抽出する方法があるかどうか教えてほしい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 「クエリ1」という名前で保存するところまでは行きました。 ごめんなさい。少しわかりにくくなるので、[クエリ1]を呼ぶ[クエリ2]を作成してください。 1)[クエリ1]のみを参照する新規クエリを作成する。 2)[電話番号]と[ID]を参照させる。 3)ACCESS2003までの場合、メニューの[表示]にある[集計]を選択する。 ACCESSが2007の場合、[ホーム]>[レコード]にある[集計]を選択する。 4)「集計行」が追加されるので、[電話番号]では「グループ化」を、[ID]では「カウント」を選択。 5)さらに[ID]の「抽出条件」には >1 を設定する。 これで[クエリ2]を実行すると、2件以上(1を越える)電話番号のみが表示されます。 デザインビューをSQLビューで表示させたときに5)の部分が having count(*)>1 と表示されます。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
1)以下の3つのクエリを作成する。 [ID][電話番号(1)] [ID][電話番号(2)] [ID][電話番号(3)] 2)上記の3クエリをunion allする。 3)2)のクエリを元に、電話番号重複を検出する(having count(*)>1) 4)2)と3)を用いて重複する電話番号を持つIDを拾う でどうでしょう?
お礼
bin-chan様 ご回答ありがとうございます。 Accessは全く初心者なのですが、調べながらどうにか [ID][電話番号(1)]⇒TEL1 [ID][電話番号(2)]⇒TEL2 [ID][電話番号(3)]⇒TEL3 というクエリ名で作成し、 SELECT * FROM TEL1 UNION ALL SELECT * FROM TEL2 UNION ALL SELECT * FROM TEL3; をユニオンクエリに突っ込んで、「クエリ1」という名前で保存するところまでは行きました。 ところがその後のhaving count(*)>1の使いかたが調べても出てきません…… お手数をおかけして大変申し訳ないのですが、ヒントだけでも頂けないでしょうか。
補足
SELECT 電話番号(1), COUNT(*) FROM クエリ1 GROUP BY 電話番号(1) HAVING COUNT(*)>1; とやったらできたようです。 ありがとうございました! あとはこれでIDを拾いに行って見ます。 これも分かりませんが、調べてみます!
お礼
ありがとうございます! 教えていただいたやり方で確認できました! 結構あてかたがわからず最後は手で検索してしまいましたが、助かりました! ありがとうございます!