我有一张包含date
, employeeID
(int) 和ShiftWorked
(可以是晚上/白天/周末或晚上) 的表格。每个员工和日期组合都有一行
我想构建一个查询,让我计算在花名册期间的每个日期之前和之后的一周内有多少人上夜班。
--------------------------------------------------------------------------
Date (yyyy-MM-dd) | CountOfNightshifts(for 1 week either side of date)
--------------------------------------------------------------------------
2012-1-1 | 8
2012-1-2 | 12
2012-1-3 | 11
2012-1-4 | 6
etc | etc
我希望这很清楚。我花了几天的时间试图让这个工作,但我没有得到任何地方。
例如:
SELECT COUNT(id), [date]
FROM ROSTER
WHERE Shift = night AND [date] BETWEEN DATEADD(D,-7,[date]) AND DATEADD(d,7,[date])
GROUP by [date]
group by [date]
这将为我提供特定日期的日期列表和夜数 - 不是该日期前后 7 天的所有夜班。