设置
我正在使用Server来跟踪生产环境中的各种情况。数据库有两个表:
问题/任务/问题
我想查询所有在生产中的案例,以及在过去两天内完成或取消的所有案例,。在日志中,我有一个datetime列和一个特定于取消或完成一个案例的代码。我假设查询可能会JOIN
日志中的任何一种情况,这些代码中的任何一种都有日期时间在48小时之前。但我不太确定该怎么做。我查询的第一部分(获取正在生成的案例)如下所示:
SELECT * FROM test.dbo.status WHERE status > 0
任何帮助都将不胜感激。提前感谢!
更新以澄清两件事:
发布于 2012-04-11 06:36:28
考虑到你没有提供任何结构,我会从这样的事情开始。
查询1:返回的记录数将是来自LogTable的匹配记录数
SELECT StatusTable.ID, LogTable.When, etc etc etc.
FROM StatusTable INNER JOIN LogTable
ON StatusTable.ID = LogTable.ID
WHERE StatusTable.status > 0
OR (LogTable.WhatCode = 97 --Assumes 97 is your desired code.
AND LogTable.When >= dateadd(hh, -48, GetDate()))
添加了
查询2:使用子查询而不是连接从LogTable获取所需的ID。(您也可以查看EXISTS
运算符而不是IN
)
SELECT StatusTable.ID, StatusTable.otherField, etc etc
FROM StatusTable
WHERE StatusTable.status > 0
OR StatusTable.ID IN (SELECT LogTable.ID FROM LogTable WHERE LogTable.WhatCode = 97 --Assumes 97 is your desired code.
AND LogTable.When >= dateadd(hh, -48, GetDate()))
https://stackoverflow.com/questions/10108016
复制