ACCESS 以下のようなレコードを抽出するSQL
ACCESSのデータベースで
あるフィールド(フィールドAとします)の値に対して、
別のフィールド(フィールドBとします)の値が1つに決まる
データベースがあるとします。
例えば、フィールドAの値が1のレコードは、
どのレコードもフィールドBの値はaである。など
このようなデータベースでこのような関係になっていないレコード
例えば、フィールドAの値が1のレコードの中に
フィールドBの値がaであるレコードと
フィールドBの値がbであるレコードがある。など
を抽出するSQLはどのように記述すればよいでしょうか。
テーブル名はTABEL1とします。
次の2つのケースでお願いします。
(1)フィールドAの値が異なればフィールドBの値が異なる場合
例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが
ある時、フィールドAの値が1でないレコードの中には、
フィールドBの値がaであるレコードが存在しない場合
(2)フィールドAの値が異なるがフィールドBの値が同じこともある場合
例えば、フィールドAの値が1で、フィールドBの値がaであるレコードが
あっても、フィールドAの値が1でないレコードの中にも、
フィールドBの値がaであるレコードが存在する場合
【回答例】(ただし、1,a,bなどの具体的な値は使わないこと)
・フィールドAの値が1のレコードを表示する例
SELECT * FROM TABLE1 WHERE フィールドA=1;
・フィールドAの値が1でフィールドBの値がaのレコードを表示する例
SELECT * FROM TABLE1 WHERE フィールドA=1 AND フィールドB='a';
・フィールドAの値が1でフィールドBの値がaのレコードと
フィールドAの値が1でフィールドBの値がbのレコードを表示する例
SELECT * FROM TABLE1 WHERE (フィールドA=1 AND フィールドB='a') OR (フィールドA=1 AND フィールドB='b');
この目的は、データベースに問題があり、
問題となっているレコードを見つけて直したいのです。
よろしくお願いします。
お礼
ありがとうございました。 それで100個ずつ取得できました。 目的は大量にあるレコードを100個ずつ取得してページ を繰ろうとするものです。 ただ、最後に端数がでた場合も端数分にダブった分を 合わせて100個取得してしまいます。 この場合は、最初に端数分を計算しておいて、最後の ページに到達した場合は別処理で表示するという感じ になるのでしょうか?