首页 > 解决方案 > SQL Server - 加入问题

问题描述

我有一个包含以下行的表:

部分 ID 部分状态
1 已分配
1 得到正式认可的
2 已分配
2 已分配
3 已分配

现在我想获取 al SectionStatus 属于该 SectionId 的 SectionId 未被批准。

上表的预期结果:1,2,3

另一个例子 :

部分 ID 部分状态
1 得到正式认可的
1 得到正式认可的
2 已分配
2 已分配
3 已分配

上表的预期结果:2,3

标签: sqlsql-servertsql

解决方案


HAVING这看起来像在子句中带有条件计数的聚合。

SELECT t.SectionId
FROM yourtable t
GROUP BY t.SectionId
HAVING COUNT(CASE WHEN t.SectionStatus = 'Approved' THEN 1 END) = 0;

db<>小提琴


推荐阅读