No.5
- 回答日時:
>if分で、CD=111 がなかったら、CS=222を探す!!ってできないのでしょうか。
。。やりたい事の意味が良くわからないのですが、select句を使っているからには該当する(条件を満たす)レコードの抽出ですよね。
CDというフィールド(列)に任意の数字が入っているレコードがたくさん、、、とりあえず1000あったとします。
わかりやすいようにレコードには1から順番にIDを付けるとしますね。
ID1のCDには「111(データ型は??)」が入っていたとする場合、それ以外の値は存在できません。
ただ、IDが2のCDには「115」や「222」だったりが入っている可能性はあります。
この場合はNo.1に書いた通り、「CDが111か222」のレコードを抽出でよいはずです。
わざわざ「なかったら探して、、」というようなことを言う必要もありません。
次がNo.2で CDと別のもう一つフィールドがあるケース、、、仮にCSとします。
ID CD CS という構造で、下記の四つのレコードがあった場合、あなたが抽出したいのはどれでしょうか?
1 110 235
2 111 222
3 110 222
4 111 220
CDをみて111なら該当すればそれを、無ければCSが222のレコードを抽出となら、2 3 4 が該当します。
つまりは CD=111 または CS=222 (両方満たしてもOK)です。No.1のままです。
2のパターンはNG(除外する)としたい場合がNo.2のような排他論理和です。
あなたの言うパターンをそのまま当てはめると2がNGという場合、除外されません。
また、if文(SQL内では使えませんが)やCase句は条件によって処理が分岐されるものであり、もともとが抽出するという処理をするSelect句とは意味合いが違います。Where句はいわばフィルター、ふるいのようなものなので、「条件に合うものを探して」という感じです。ここでは「CD=111でなかったら」という表現をする意味も理由もないのです。
AccessVBA内でレコードセットを作ってif文で同じ処理をする事も出来ますが、結果は同じなのに圧倒的に遅いです。
お手数をお掛けして申し訳ございません。
以下のテーブルを
---------------------
ID CD atai
A 111 1
A 222 2
B 222 3
C 333 4
--------------------
この形にしたいのです。
---------------------
ID CD atai
A 111 1
B 222 3
--------------------
ID=Aは、atai=1※CDに111があるので。CD=222は,111があるので削除
ID=Bは、atai=3※CDに111はないが、222があるので
※ID=Cは、111,222共にないので削除
記載が悪くても申し訳ございません。
よろしくお願いいたします。
No.4
- 回答日時:
ゲンタ君です。
勝手ながら書き込みます。採用するもしないもあなたの勝手です。
SELECT * FROM テーブルA WHERE CD = "111" OR CD = "222"
AND NOT EXISTS(SELECT * FROM テーブルA WHERE CD = "111")
No.2
- 回答日時:
>CD=111が「なかったら」CD=222
そう言う見方でなく、全レコードから「CD=111 かつ CD(C?)=222」を除いた集合体から「CD=111またはC=222」を抽出すると考えるとよいかと思います。排他論理和ですね。
演算子に排他論理和(XORやEOR)が使えれば簡単なのですが、ベタに書くと
where (CD="111" OR C="222") AND NOT(CD="111" AND C="222");
になりますがでどうでしょうか?
※同じ結果となる記述はいくつかあります。
AccessはXORが使えますので、XORを使う場合は
where CD="111" XOR C="222";
です。
if分で、CD=111 がなかったら、CS=222を探す!!ってできないのでしょうか。。。
SQL(だけじゃないですけど)全くの素人で申し訳ございません。。。。
No.1
- 回答日時:
まず、C=222ではなく、CD=222ではないのでしょうか?
その場合、あるレコードのCDの値が222だったときには必ず「111ではない」ということになります。
ならば、抽出は条件は 「CDが”111”または”222”」でよいので OR (論理和) を使えばよいです。
where CD="111" OR CD="222"
という感じです。
C=222の場合はもっと条件が増えると思いますが、基本的には論理演算で絞り込んでいきます。
ご連絡ありがとうございます。CD=111とCD=222の両方の値もっていることがあるので、
CD=111が「なかったら」CD=222という形が欲しいのです。
※orではなく
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) SQLで抽出 4 2022/12/04 13:55
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
Access2007でSQLの複数列副問い合わせについて
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
-
4
ACCESSのSQLで、NULLかNULLでないかの判定
その他(データベース)
-
5
Accessクエリーで両方のテーブルの全てのデータを表示することは可能ですか?
Access(アクセス)
-
6
select文の実行結果に空白行を入れたい
MySQL
-
7
ACCESS クエリで重複データを最新の1件だけ表示
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
Access チェックボックスを利用...
-
未審査請求包袋抽出表作成とは...
-
ACCESSのクエリー抽出条件にIIF...
-
エッセンシャルオイルの作り方...
-
エクセルで色の付いたセルを抽...
-
AccessのWHERE句において、変数...
-
Accessの選択クエリの抽出条件...
-
エクセル VBA メール本文に指定...
-
アクセス 同じフィールド(テキ...
-
エクセルで近似値を特定の行か...
-
PDFファイル/抽出許可され...
-
AdvancedFilter 検索 複数条件
-
【エクセルVBA】 A1セルを参照...
-
Excel 文字列から6桁の数値の抽出
-
PDFファイルから特定の文字を検...
-
COUNTIFのやり方を教えてくださ...
-
access クエリ yes/no型のクエ...
-
乾燥ワカメがアルコールで柔ら...
-
【AccessVBA】レコードセットOp...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、抽出したデータだ...
-
「パラメータが少なすぎます。3...
-
PDFファイルから特定の文字を検...
-
AccessのWHERE句において、変数...
-
エクセルで色の付いたセルを抽...
-
ACCESSのクエリー抽出条件にIIF...
-
【AccessVBA】レコードセットOp...
-
Excel 文字列から6桁の数値の抽出
-
PDFファイル/抽出許可され...
-
X-Ripperというフリーウェアに...
-
アクセス 同じフィールド(テキ...
-
未審査請求包袋抽出表作成とは...
-
access クエリ yes/no型のクエ...
-
ACCESS クエリ 条件以外のレ...
-
血から鉄って作れないですか?
-
エクセル関数で住所から丁目番...
-
Access チェックボックスを利用...
-
COUNTIFのやり方を教えてくださ...
-
エクセル VBA メール本文に指定...
-
Accessの選択クエリの抽出条件...
おすすめ情報