プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

使えません。


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

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

DELETE FROM AAAA
WHERE exists(
SELECT あああ, いいい FROM BBBB GROUP BY あああ,いいい
having AAAA.あああ = BBBB.あああ and AAAA.いいい = BBBB.いいい);
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/06/03 12:09

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