我有一个查询,允许我返回从参数日期(@STARTDATE)到28天之前发生的EventID事件数。我希望能够返回过去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天开始。
任何帮助表示赞赏。
要计算从前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
。
这些数字是相反的顺序,但这个查询有效:
COUNT(eventdate> = DATEADD(day,-56,@ StartDate)和eventdate <= DATEADD(day,-29,@ StartDate),然后是EventId END)
感谢Gordon的帮助!