従業員のスケジュールを含むテーブルがあります。
create table dbo.schedules
(agentID int,
dayID int,
shiftStart time,
break1Start time,
break1stop time,
lunchStart time,
lunchStop time,
break2Start time,
break2Stop time,
shiftEnd time,
offindicator bit
)
8:00 から 21:00 までの 15 分単位で対応可能なエージェントの数を合計したいと考えています。
どうすればいいですか?
これまでのところ、評価するための次のコードがあります。
select
sum(case when offindicator = 1 or @timeslot < shiftStart or (@timeslot >=
break1Start and @timeslot <break1stop) OR (@timeslot >= break2Start and @timeslot <
break2stop) OR @timeslot >= shiftend then 0 else 1 end) [onoff]
from dbo.schedules
...しかし、今は次のようなタイムスロットとカウントのリストが必要です:
DayID | Timeslot | Count
1 | 8:00 | 15
1 | 8:15 | 10
1 | 8:30 | 20
1 | 8:45 | 10
等
スケジュール テーブルのサンプル データ:
( 215, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1 )
,( 215, 2, '08:00', '10:20', '10:35', '12:30', '12:45', '15:00', '15:15', '17:00', 0 )
,( 215, 3, '08:00', '10:20', '10:35', '12:30', '12:45', '15:00', '15:15', '17:00', 0 )
,( 215, 4, '08:00', '10:20', '10:35', '12:30', '12:45', '15:00', '15:15', '17:00', 0 )
,( 215, 5, '08:00', '10:20', '10:35', '12:30', '12:45', '15:00', '15:15', '17:00', 0 )
,( 215, 6, '08:00', '10:20', '10:35', '12:30', '12:45', '15:00', '15:15', '17:00', 0 )
,( 215, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1 )