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 的帮助!
我有一个查询,允许我 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 的帮助!