こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServerでの副問合せについて

いつもお世話になります。
当方SQLServerをあまり使った事がなくSQLの組み方で少々てこずっております。そこでちょっとお知恵をお借りしたく質問致しました。
処理内容としましては、ある条件でテーブル内のデータを削除するって事なんですが、オラクルで記述するなら
DELETE FROM AAAA
WHERE (あああ,いいい) IN (SELECT あああ,いいい FROM BBBB GROUP BY あああ,いいい) 
となるのですが、この構文をSQLServerで記述すると構文エラーとなってしまいます。
まあこの構文が実際には使えて私の記述がおかしいだけのかもしれないのですが、もし使えないのであればどのように記述すればよいのでしょうか?
申し訳ありませんが、宜しくお願いします。
ちなみにSQLServerは2000を使用しております。

投稿日時 - 2004-06-03 01:26:28

QNo.879284

暇なときに回答ください

質問者が選んだベストアンサー

使えません。
inで2つのフィールドの値を判定することができません。

なので、相関副問い合わせを使うことになります。

DELETE FROM AAAA
WHERE exists(
SELECT あああ, いいい FROM BBBB GROUP BY あああ,いいい
having AAAA.あああ = BBBB.あああ and AAAA.いいい = BBBB.いいい);

投稿日時 - 2004-06-03 09:42:17

お礼

taka_tetsuさん早速のお返事ありがとうございます。
おかげでうまくいきました。
私の勉強不足っていうのもあるのですが、
SQLって言うのはアイデアと工夫と経験ってのも大事なような気がしました。ありがとうございました。

投稿日時 - 2004-06-03 12:09:22

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問