アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

実際のSQLを見ないと何とも言えませんが、推測で・・・



不必要なフィールドを出力しているのでは?
重複をチェックしたいフィールドのみ出力して下さい。

出来れば、SQLの内容を書いてください。もっと正確な回答が出ると思いますよ。

クエリのデザイン画面 表示→SQLビュー

この回答への補足

お世話になります。
Access初心者なので、まだよく理解できていません。
とり合えずSQLを書きますので、よろしくご回答ください。

SELECT 顧客マスター.氏名, 販売.品番(品名、色)
FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID
WHERE (((販売.品番(品名、色))="97111"));

補足日時:2006/12/12 21:26
    • good
    • 0

>が「97」から始まる商品の購入者を検索しようとワイルドカードを使って「97*」で検索すると「97111」と「97112」を購入した同一人物が表示されます。

これを購入者名を重複せずに表示することはできますか?

品番(品名、色)が異なるので表示すると、氏名が重複します。
品番(品名、色)の「表示」のチェックを外して、氏名だけ表示してください。

SELECT DISTINCT 顧客マスター.氏名
FROM 顧客マスター INNER JOIN 販売 ON 顧客マスター.顧客ID = 販売.顧客ID
WHERE (((販売.品番(品名、色)) Like "97*"));
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/13 15:09

補足ありがとうございます。

検証してみました。

顧客マスター
顧客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」を購入した同一人物が表示されます。これを購入者名を重複せずに表示することはできますか?
いろいろ細かく質問してすみません。
よろしくお願いいたします。

補足日時:2006/12/13 13:17
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています