2017-06-26 5 views
-1

テーブルからデータをグループ化する際に問題があります。 num = 1とnum = 99の行の名前が異なる場合にのみ、num = 1で完全な行を取得したいとします。IDごとに1行を抽出します

これは一例です:

id | name | num 
001 frank 1 
001 jonh 2 
001 alfred 99 
002 annie 1 
002 maurice 99 
003 mary 1 
003 mary 99 

私はこの結果を取得したい:

id | name | num 
001 frank 1 
002 annie 1 
+0

[そう] A *ではありませんしてください無料コード書き込みサービス。 **あなた自身でコードを書くことを試みることが期待されます**。 [もっと研究をして](http://meta.stackoverflow.com/questions/261592)問題がある場合は**あなたが試したことを投稿することができます** **動作していないことの明確な説明**を提供し、** [mcve] **を提供します。私は良い質問と[完璧な質問]を読むことをお勧めします(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。また、[ツアー]も必ず行ってください。 – Igor

+0

私はお詫びしますが、私がヘルプ投稿を書いた場合、私は自分の問題に対する解決策を見つけられませんでした。とにかく、過去に私のような投稿を書いた他のユーザーが受け取ったという提案を適用しようとしました。 – Injektilo

+0

どのDBMSを使用していますか? Postgres?オラクル? DB2?ファイアバード? –

答えて

0
select '001' as id, cast('frank' as nvarchar(10)) as name , 1 as num 
into #temp1 

insert into #temp1(id,[name],num) 
values 
('001', 'jonh' , '2'), 
('001', 'alfred' , '99'), 
('002', 'annie' , '1'), 
('002', 'maurice', '99'), 
('003', 'mary' , '1'), 
('003', 'mary' , '99') 
select * from #temp1 
where name not in (select name from #temp1 group by name having count(*)>1) 
and num = 1 

がイゴールのコメントを読んで

+0

ありがとう、Javierを使用しています。 – Injektilo

+0

私にポイントを与える:) –

関連する問題