以下のようなテーブルからc列とd列のデータが重複しているレコードを取得したいために、以下のSQLを試してみました。
a列|b列|c列|d列
---|---|---|---
01 |01 |01 |01
02 |01 |01 |01
03 |02 |01 |03
04 |02 |02 |03
05 |01 |01 |02
06 |02 |02 |03
select * from テスト
where c in (select c from テスト group by c,d having count(*)>1)
and d in (select d from テスト group by c,d having count(*)>1)
そうしたところ、以下の結果になってしまいました。
想定では、○のレコードだけ抽出できると思ったのです。
×のレコードを抽出したくないのですが、SQLのどこが
間違っているのでしょうか?
a列|b列|c列|d列
---|---|---|---
01 |01 |01 |01 ○
02 |01 |01 |01 ○
03 |02 |01 |03 ×
04 |02 |02 |03 ○
06 |02 |02 |03 ○
(使用DB)SQLServer2000