SQL 查询:Return 值从参数日期起 28 天到参数日期后 56 天

SQL Query: Return value starting 28 days from parameter date to 56 days after parameter date

我有一个查询,允许我 return 从参数日期 (@STARTDATE) 到前 28 天发生的事件数(按 EventID)。我希望能够 return 过去 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.

数字顺序相反,但此查询有效:

计数(当事件日期 >= DATEADD(天,-56,@StartDate)和 事件日期 <= DATEADD(日,-29,@StartDate) 然后 EventId 结束)

感谢 Gordon 的帮助!