我有一个包含date
,employeeID
(int)和ShiftWorked
(可以是night/day/weekend或evening)的表。每个员工和日期组合都有一排在一个日期范围内满足条件的MSSQL select count
我想构建一个查询,该查询给出了有多少人在名单期间的每个日期之前和之后的一周中有过多次夜班工作。
--------------------------------------------------------------------------
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天与日之后。
请发表您已经尝试过的内容。 – 2012-04-24 09:55:41