2

列の値に依存する DB テーブルから行を選択する必要がある状況があります。

Project    Version     Status

MSS           3         active
MSS           2         active 
MSS           1         complete 
RIL           3         active
RIL           2         active  
RIL           1         active
DT            2         complete
DT            1         complete

プロジェクトは、そのすべてのバージョンが完成した場合にのみ完成したと見なされます。これは、テーブルのプロジェクト列にある同じプロジェクトのすべてのオカレンスで、ステータス列が「完了」になっていることを意味します。

完了したプロジェクトだけを選択するにはどうすればよいですか?

4

2 に答える 2

2
select project
from MyTable
group by project
having count(*) = sum(case when status = 'complete' then 1 else 0 end)
于 2013-03-05T21:21:44.937 に答える
0
SELECT * FROM MyTable
WHERE Project IN
(SELECT Project FROM MyTable WHERE Status = 'complete')
于 2013-03-05T21:22:52.250 に答える