• ベストアンサー

Accessの重複データ非表示について

Accessのクエリで重複データを非表示にする際、「クエリプロパティ」シートで「固有の値」を「はい」に変更しても上手くいきません。 この場合、どういう原因が考えられますか? アドバイスをよろしくお願いします。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

実際のSQLを見ないと何とも言えませんが、推測で・・・ 不必要なフィールドを出力しているのでは? 重複をチェックしたいフィールドのみ出力して下さい。 出来れば、SQLの内容を書いてください。もっと正確な回答が出ると思いますよ。 クエリのデザイン画面 表示→SQLビュー

doppelt
質問者

補足

お世話になります。 Access初心者なので、まだよく理解できていません。 とり合えずSQLを書きますので、よろしくご回答ください。 SELECT 顧客マスター.氏名, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111"));

その他の回答 (2)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

>が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? 品番(品名、色)が異なるので表示すると、氏名が重複します。 品番(品名、色)の「表示」のチェックを外して、氏名だけ表示してください。 SELECT DISTINCT 顧客マスター.氏名 FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色)) Like "97*"));

doppelt
質問者

お礼

教えていただいた通りにやってみたらできました。 どうも色々教えていただきまして、ありがとうございました。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

補足ありがとうございます。検証してみました。 顧客マスター 顧客ID   氏名  1     Aさん  2     Bさん  3     Cさん 販売 顧客ID  品番(品名、色)  1     97111  2     1  2     2  3     97111  3     3  3     97111 SQL SELECT DISTINCT 顧客マスター.氏名, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111")); 結果 氏名   品番(品名、色) Aさん  97111 Cさん  97111 上の例では正しく動きました。(Cさんの重複データが表示されていません) >変更しても上手くいきません。 「上手くいかない」とはどんな風に上手くいかないのでしょうか? (最初に聞くべきでしたね、すいません。(^^;) 気になる点は、まず補足していただいたSQLが 「SELECT DISTINCT ~」ではなく「SELECT ~」になっていた点です。「固有の値」を「はい」にするとSQLに「DISTINCT」と言う命令が付くはずですので、確認して下さい。 もう1つ、今回の件とは関係ないかもしれませんが、顧客マスター内で氏名が重複している可能性はないですか?。氏名ではなく、顧客IDを出力した方が良いと思います。 SELECT DISTINCT 顧客マスター.顧客ID, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111"));

doppelt
質問者

補足

いろいろ親切に調べていただきまして、ありがとうございます。 自分でいろいろ試しているうちに、原因が何となく分かってきました。ブランド名で検索した場合は重複データが表示されませんが、例えば品番が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? いろいろ細かく質問してすみません。 よろしくお願いいたします。

関連するQ&A