OS WIN7
ACCESS 2007使用です。

クエリーの抽出条件について何ですが、テーブルにコードというフィールドがありまして、そこには数値が入力されています。

コード








このテーブルを元に選択クエリーを作りたいのですが、条件としてコードの値に2と3両方がある場合、2のレコードだけを表示せず、どちらか一方の数値だけの場合またはどちらもない場合は、全てのレコードを表示するようにしたいのです。

抽出条件はどのように書けばよいのでしょうか?

いろいろ試したのですが、うまくいきません。

どなたかお助け下さい。

A 回答 (2件)

条件がいろいろ書かれていますが、


要は
・コード 3 が存在すれば 2以外を抽出
・コード 3 が存在しなけば すべてを抽出
この2つのみですね。

クエリデザインでフィールドを2個追加。

フィールド:コード  |DLookUp("コード","テーブル名","コード=3")
 テーブル:テーブル名|
   表示:オフ   |オフ
 抽出条件:<>2    |Is Not Null
  または:     |Is Null
    • good
    • 0
この回答へのお礼

ありがとうございます。

ばっちりできました。

久しぶりにアクセスを使うと、いろんなことを忘れてるもんですねえ。

お礼日時:2011/04/28 19:12

むりやりSQL考えてみました


もっといい方法あるかもしれませんが。

SELECT コード
FROM TABLE_A
WHERE (
NOT EXISTS ( SELECT * FROM TABLE_A WHERE コード =2)
OR
NOT EXISTS ( SELECT * FROM TABLE_A WHERE コード =3)
)
OR
(
EXISTS ( SELECT * FROM TABLE_A WHERE コード =2)
AND
EXISTS ( SELECT * FROM TABLE_A WHERE コード =3)
AND
コード <> 2
)
;


Where句の説明

(コードが2のレコードがないか、コードが3のレコードがない場合は(両方存在しない場合も含め)
それ以外の条件はなし)
または
(コードが2のレコードが存在し、コードが3のレコードが存在する場合は、
さらにコードが2以外のレコード)


といったかんじですかね
    • good
    • 0
この回答へのお礼

コードまで書いていただきましてありがとうございます。

SQLの記述は苦手なもんで、非常に勉強になります。

お礼日時:2011/04/28 19:13

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


人気Q&Aランキング