搜索此条件的查询应该是什么

时间:2011-09-16 10:52:56

标签: sql

我有一个表S_EVT_ACT,其字段为SR_ID,STATUS,TYPE。

TYPE可以是NT,HLT和LSP,还有一些值。可能存在多个具有不同类型和相同SR_ID的记录。我想选择其中TYPE不是NT和HLT的SR_ID,并且该SR_ID的所有其他记录的状态都已完成。即使有一个状态不完整的记录,我也想拒绝该SR_ID。

2 个答案:

答案 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')