1
我需要查找在最近30天或更長時間沒有事件發生後發生的所有事件。我目前的查詢只能找到30天的第一個缺口。如果30天或更長時間沒有任何差距,那麼我使用默認日期返回所有行。T-SQL:30天差距後的最新事件
如果該事件比30天更舊,我還應該小心不要返回事件的單個實例。
考慮下面的事件,最近的事件最近最30天缺口後應該是6/30/2011,但我的查詢返回4/13/2011
EventDate EventType
========= =========
4/13/2011 1
5/20/2011 1
6/30/2011 1
DECLARE @DefaultDate DATETIME
SET @DefaultDate = '1/1/2011'
SELECT ISNULL(MAX(EventDate), @DefaultDate)
FROM Events e
WHERE
e.EventType = 1
AND NOT EXISTS (SELECT 1
FROM Events
WHERE EventType = 1
AND DATEDIFF(dd,EventDate, e.EventDate)) > 30
)