我有一种情况需要从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
只有当项目的所有版本都完整时,才认为项目已完成。这意味着当状态列在表的项目列中的所有相同项目中都“完成”时。
如何只选择那些完整的项目?
答案 0 :(得分:2)
select project
from MyTable
group by project
having count(*) = sum(case when status = 'complete' then 1 else 0 end)
答案 1 :(得分:0)
SELECT * FROM MyTable
WHERE Project IN
(SELECT Project FROM MyTable WHERE Status = 'complete')