我有一个表S_EVT_ACT,其字段为SR_ID,STATUS,TYPE。
TYPE可以是NT,HLT和LSP,还有一些值。可能存在多个具有不同类型和相同SR_ID的记录。我想选择其中TYPE不是NT和HLT的SR_ID,并且该SR_ID的所有其他记录的状态都已完成。即使有一个状态不完整的记录,我也想拒绝该SR_ID。
答案 0 :(得分:3)
SELECT SR_ID,STATUS,TYPE FROM S_EVT_ACT
WHERE TYPE NOT IN ('NT', 'HLT')
AND SR_ID NOT IN (SELECT SR_ID FROM S_EVT_ACT WHERE STATUS <> 'Complete')
那样的东西?
答案 1 :(得分:0)
如果我弄错了,这个查询就可以了;
select [SR_ID],[STATUS],[TYPE]
from S_EVT_ACT S
where 1=1
and S.[TYPE] not in ('NT','HLT')
and S.[SR_ID] not in (select distinct(se.[SR_ID]) from S_EVT_ACT se where se.[STATUS] <> 'completed')