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

締切り済みの質問

重複レコードの取得

すみません。。重複レコードの取得方法に困っています。
やりたいのは以下です。

テーブルA
項目1| 項目2| 項目3|
11 | 11 | 01 |
12 | 11 | 02 |
13 | 11 | 04 |
14 | 11 | 04 |

上記の項目1は主キーです。
抽出したいのは下記のみです。
項目1| 項目2| 項目3|
13 | 11 | 04 |
14 | 11 | 04 |

色々SQLを組んで試しては見てるのですが。。。。
select * from テーブル where ((項目3) in (SELECT 項目3 FROM テーブル GROUP BY 項目3 having count(*)>1))

上記SQLだと項目3を主キーごとにカウントしてるみたいなので
意図した結果が抽出されないのです・・・・・。

項目2と項目3を結合して重複のチェックをすればよいのか??
とも思いますがSQL自体が1本で完結したいので
よく分からなくなってしまいました。。。。。

皆さんご教示宜しくお願い致します。

投稿日時 - 2007-04-04 10:48:50

QNo.2892838

すぐに回答ほしいです

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

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

回答(3)

ANo.3

以下のようなSQL文はどうですか?
SELECT * FROM テーブル 別名1
WHERE EXISTS (SELECT 'X' FROM テーブル 別名2
WHERE 別名2.項目2 = 別名1.項目2
AND 別名2.項目3 = 別名1.項目3
AND 別名2.ROWID <> 別名1.ROWID
);

投稿日時 - 2007-04-04 23:52:36

ANo.2

こんな感じでは?

select * from テーブル
where (項目2,項目3)
in(select 項目2,項目3 from テーブル
group by 項目2,項目3
having count(*)>1)

投稿日時 - 2007-04-04 15:39:30

ANo.1

単純にこういうのどうですか??
SELECT
*
FROM
テーブル
WHERE
項目2 = '11' AND 項目3 = '04'

投稿日時 - 2007-04-04 12:47:26

あなたにオススメの質問