
以下のようなテーブルから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
No.2ベストアンサー
- 回答日時:
>SQLのどこが間違っているのでしょうか?
最初の条件では、c列の値が01、02がヒットします。
二つ目の条件では、d列の値が、01、03がヒットします。
これにより、c列=01 & d列=03の行もヒットしてしまいます。
つまり、c列の値とd列の値の組で、「2件以上あるもの」という条件になっていません。
以下にSQL例を示します。
select * from t1 x
where exists
(select * from t1 where x.c=c and x.d=d group by c,d having count(*)>1)
No.1
- 回答日時:
スーツのデザイナーでプログラマではありません。
一応、SQL Server に次に SQL文を発行しフォームに表示して確認しています。
ミスの可能性もあります。
検証して下さい。
select * from Table1
where str(Cc) + str(DD) in (select str(CC) + str(DD) from Table1 group by CC,DD having count(*)>1)
ID aa bb cc dd
1 1 1 1 1
2 2 1 1 1
3 3 1 1 3
4 4 2 2 3
5 5 1 1 2
6 6 2 2 3
一応、これで!
No.|ID|aa|bb|cc|dd|
1| 1|1 |1 |1 |1 |
2| 2|2 |1 |1 |1 |
3| 4|4 |2 |2 |3 |
4| 6|6 |2 |2 |3 |
CC+DD が重複しているか否かに条件を訂正したつもりです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部参照してるキーを主キーに...
-
列のヘッダーを含めるのをデフ...
-
特定の文字列で列を区切るには?
-
テーブル列数とデータファイル...
-
特定の列だけをGROUP BYしたい時
-
SQLで列名を変数にできないでし...
-
Outlook 送受信エラー
-
エクセルで最後の文字だけ置き...
-
for whichの使い方
-
差し込み後、元データを変更し...
-
MessageBoxで表示される文字列...
-
SQLで特定の項目の重複のみを排...
-
【Transact-sql】 execの結果を...
-
カーソル0件の時にエラーを発生...
-
ソフトバンクの無料着うたのお...
-
バッチでcsvファイルの指定のカ...
-
WordpressのContact form 7でzi...
-
エクセルに見えない文字(JISX0...
-
1日に1人がこなせるプログラム...
-
Oracleのデータ型、NUMBERについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字列で列を区切るには?
-
外部参照してるキーを主キーに...
-
SELECT 文 GROUP での1件目を...
-
列のヘッダーを含めるのをデフ...
-
SQLで列名を変数にできないでし...
-
UPDATE文のWHERE条件に他のテー...
-
Access:クエリーにて集計後に...
-
【VB.NET】日付型の列にNULLを...
-
列番号による項目の取得について
-
SQLです教えてくださいお願いし...
-
Accessでの全データから空白削除
-
Accessのリストボックスについて
-
特定の列だけをGROUP BYしたい時
-
テーブル列数とデータファイル...
-
AccessのデータをExcelに抽出
-
v$processのPROGRAM列に関する質問
-
重複データの抽出方法(複数項目)
-
SQLite3 の UpdateCommand エラー
-
IDENTITY列の更新で失敗する
-
SQLで一時的に表示変更するには...
おすすめ情報