我有一个查询,该查询使我可以按事件ID返回从参数日期(@STARTDATE)到前28天发生的事件数。我希望能够返回过去28天发生的事件数。
COUNT (DISTINCT (CASE when EventID between DATEADD(YEAR,-0,DATEADD(DAY, DATEDIFF(DAY, 0, @STARTDATE), -28)) and DATEADD(Year,-0,@STARTDATE) then EVentID END)) TwentyEightDays
我需要能够运行类似的查询,其中EVENTID计数从@STARTDATE的29天到@STARTDATE之后的56天开始。
感谢您的帮助。
答案 0 :(得分:0)
要计算从28天到给定日期的事件,我将使用:
COUNT(DISTINCT CASE WHEN eventdate >= DATEADD(day, -28, @StartDate) AND
eventdate <= @startdate
THEN EventId
END) as TwentyEightDays
在29天到56天之后:
COUNT(DISTINCT CASE WHEN eventdate >= DATEADD(day, 29, @StartDate) AND
eventdate <= DATEADD(day, 56, @StartDate)
THEN EventId
END)
注意:这假设您有一个有关日期的列。我怀疑是EventId
。
答案 1 :(得分:0)
数字是相反的顺序,但此查询有效:
COUNT(事件日期> = DATEADD(天,-56,@ StartDate)时的不同情况)并且 eventdate <= DATEADD(day,-29,@StartDate) 然后EventId结束)
感谢Gordon的帮助!