首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSSQL获取没有特定状态的记录

MSSQL获取没有特定状态的记录
EN

Stack Overflow用户
提问于 2014-02-06 15:46:38
回答 1查看 39关注 0票数 0

我有一个数据库,它有三个表:

告警

代码语言:javascript
复制
ID          Message
-------------------
1           Server01 Down
2           Switch01 Port 2 down
3           Webserver Down

ListAlarmStates

代码语言:javascript
复制
ID       StateName
------------------
1        Raised
2        RaisedNotified
3        Cleared
4        ClearedNotified
5        ForceClear

AlarmStates

代码语言:javascript
复制
ID       AlarmId        ListAlarmStatesId
-----------------------------------------
1        1              1
2        1              2
3        1              3
4        1              4
5        2              1
6        2              5
7        3              1

现在,我想知道所有没有状态ClearedNotified但状态已清除的警报(状态清除,我可以在代码中捕获)。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-06 15:53:31

代码语言:javascript
复制
SELECT AlarmId FROM
AlarmStates AS
INNER JOIN Alarm A
 ON (AS.AlarmID = A.ID)
INNER JOIN ListAlarmStates LA
 ON ( AS.ListAlarmStatesId = LA.ID)
GROUP BY AS.AlarmID
HAVING COUNT(CASE WHEN LA.StateName = 'ClearedNotified' THEN 1 ELSE NULL END) = 0
   AND COUNT(CASE WHEN LA.StateName = 'Cleared' THEN 1 ELSE NULL END) > 0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21607481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档