【发布时间】:2016-09-26 21:08:05
【问题描述】:
我目前正在尝试构建一个逻辑,该逻辑将根据报告的运行日期独立汇总当前一周的每一天。我需要弄清楚如何构建一个查询以将每一天(以及每周总和)聚合为单独的列。
下面我只提供了用于 Total 和 Sunday 的子查询:
DECLARE
@SundayOfCurrentWeek date
, @MondayOfCurrentWeek date
, @TuesdayOfCurrentWeek date
, @WednesdayOfCurrentWeek date
, @ThursdayOfCurrentWeek date
, @FridayOfCurrentWeek date
, @SaturdayOfCurrentWeek date
set @SundayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), -1)
set @MondayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
set @TuesdayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 1)
set @WednesdayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 2)
set @ThursdayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 3)
set @FridayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 4)
set @SaturdayOfCurrentWeek = DATEADD(wk, DATEDIFF(wk,0,getdate()), 5)
/** 选择一周内的总记录**/
( select count(*)
from release
where releasetime >= @SundayOfCurrentWeek
AND releasetime <= @SaturdayOfCurrentWeek ) as TotalCount
/** 选择截至周日的所有记录**/
( select count(*) as SundayCount
from release
where releasetime >= @SundayOfCurrentWeek
AND releasetime < @MondayOfCurrentWeek ) as SundayCount
【问题讨论】:
标签: sql sql-server tsql count aggregate