- ベストアンサー
Accessの重複データ非表示について
Accessのクエリで重複データを非表示にする際、「クエリプロパティ」シートで「固有の値」を「はい」に変更しても上手くいきません。 この場合、どういう原因が考えられますか? アドバイスをよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
実際のSQLを見ないと何とも言えませんが、推測で・・・ 不必要なフィールドを出力しているのでは? 重複をチェックしたいフィールドのみ出力して下さい。 出来れば、SQLの内容を書いてください。もっと正確な回答が出ると思いますよ。 クエリのデザイン画面 表示→SQLビュー
その他の回答 (2)
- venzou
- ベストアンサー率71% (311/435)
>が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? 品番(品名、色)が異なるので表示すると、氏名が重複します。 品番(品名、色)の「表示」のチェックを外して、氏名だけ表示してください。 SELECT DISTINCT 顧客マスター.氏名 FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色)) Like "97*"));
お礼
教えていただいた通りにやってみたらできました。 どうも色々教えていただきまして、ありがとうございました。
- venzou
- ベストアンサー率71% (311/435)
補足ありがとうございます。検証してみました。 顧客マスター 顧客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"));
補足
いろいろ親切に調べていただきまして、ありがとうございます。 自分でいろいろ試しているうちに、原因が何となく分かってきました。ブランド名で検索した場合は重複データが表示されませんが、例えば品番が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか? いろいろ細かく質問してすみません。 よろしくお願いいたします。
補足
お世話になります。 Access初心者なので、まだよく理解できていません。 とり合えずSQLを書きますので、よろしくご回答ください。 SELECT 顧客マスター.氏名, 販売.品番(品名、色) FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID WHERE (((販売.品番(品名、色))="97111"));