用于过滤唯一状态记录的SQL查询

Nis*_*ant 0 sql sql-server oracle

我需要一个SQL Server和Oracle兼容的查询来获得以下结果

表:

PRIMARY IDN   SECONDARY_IDN    STATUS 
1             47               Pending
2             47               Completed
3             47               Error
4             57               Pending
5             59               Completed
6             60               Pending
7             60               Completed
Run Code Online (Sandbox Code Playgroud)

我输入的是,要么Pending,CompletedError.

我需要列出只有1个状态的所有辅助IDN,这是输入状态.

例如我的输入是Pending:它应该只显示57.其他人可能有,Pending但它也已完成和错误记录.

你能帮我么 ?

Joh*_*Woo 5

SELECT  SECONDARY_IDN
FROM    tableName
GROUP   BY SECONDARY_IDN
HAVING  SUM(CASE WHEN Status = 'Pending' THEN 1 ELSE 0 END) = COUNT(*)
Run Code Online (Sandbox Code Playgroud)