它对我不太有用!
我的查询如下:
SELECT COUNT (*) as [generic]
FROM [Log]
Where value IN (Select ID, tsSendDocument, sysReceivedFrom
WHERE sysReceivedFrom = 'generic' AND
DATEDIFF(hour, tsSendDocument, GetDate()) > 2)
那么,我在这里做错了什么?
我希望每次TSSendDocument列都比2小时大。它最终会给我一个等于1的计数,如果值= 1,我有一个表来提醒我,这意味着tssenddocument超过2小时。
这有意义吗?
根据您的评论,我知道您想检查最后一个条目是否超过2小时,所以这应该有效:
SELECT TOP 1 CASE WHEN tsSendDocument < DATEADD(HOUR, -2, GETDATE()) THEN 1 ELSE 0 END AS [generic]
FROM [Log]
ORDER BY tsSendDocument DESC
我认为您只需要聚合:
Select COUNT(*)
FROM Log
WHERE sysReceivedFrom = 'generic' AND
DATEDIFF(hour, tsSendDocument, GetDate()) > = 2;
subquery
仅在指定IN
或NOT IN
子句时返回一个表达式。