2

我有一种情况,我需要从数据库表中选择行,这取决于列中的值。

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 回答