以下のように Table tempslotsassignedforeptがあります
DEPT ScheduledStartDate ScheduledEndDate TotalSlots
DevEng 2012-07-17 00:00:00.000 2012-08-28 00:00:00.000 39
DevEng 2012-07-17 00:00:00.000 2012-08-31 00:00:00.000 18
DevEng 2012-07-18 00:00:00.000 2012-08-29 00:00:00.000 9
DevEng 2012-07-19 00:00:00.000 2012-08-30 00:00:00.000 40
Prod 2012-07-19 00:00:00.000 2012-08-30 00:00:00.000 8
Rel 2012-07-19 00:00:00.000 2012-08-30 00:00:00.000 19
Rel 2012-07-19 00:00:00.000 2013-08-15 00:00:00.000 1
上記の各部門の総スロット数の合計を取得する必要があります。シリアルがある場合は、部門に 3 日が存在します。
上の表を見ると、部門 deveng には 2012 年 7 月 17 日、2012 年 7 月 18 日、2012 年 7 月 19 日の連続した 3 つの開始予定日があります。
以下のクエリを使用して結果を確認しようとしていますが、正確な結果を確認するためのより多くの実装を教えてください。
SELECT Tmain.DepartmentCode,
CONVERT(VARCHAR(20), Tmain.ScheduledStartDate, 101) 'ScheduledStartDate',
SUM(Tmain.TotalSlots) 'Tmain.TotalSlots',T1Sub.TotalSlots 'T1SubTotalSlots', T2Sub.TotalSlots 'T2SubTotalSlots'
FROM tempSlotsAssignedForDept Tmain
INNER JOIN (Select DATEADD(DAY,1,T1.ScheduledStartDate) 'ScheduledStartDate',SUM(T1.TotalSlots) 'TotalSlots'
FROM tempSlotsAssignedForDept T1
INNER JOIN tempSlotsAssignedForDept Tmain
ON (T1.ScheduledStartDate = dateadd(day, -1, tmain.ScheduledStartDate ) and
T1.DepartmentCode = tmain.DepartmentCode)
GROUP BY T1.ScheduledStartDate ) T1Sub
ON Tmain.ScheduledStartDate = T1Sub.ScheduledStartDate
INNER JOIN (Select DATEADD(DAY,2,T2.ScheduledStartDate) 'ScheduledStartDate',SUM(T2.TotalSlots) 'TotalSlots'
FROM tempSlotsAssignedForDept T2
INNER JOIN tempSlotsAssignedForDept Tmain
ON (T2.ScheduledStartDate = dateadd(day, -2, tmain.ScheduledStartDate ) and
T2.DepartmentCode = tmain.DepartmentCode)
GROUP BY T2.ScheduledStartDate ) T2Sub
ON Tmain.ScheduledStartDate = T2Sub.ScheduledStartDate
GROUP BY Tmain.DepartmentCode,Tmain.ScheduledStartDate,T1Sub.TotalSlots , T2Sub.TotalSlots
ORDER BY Tmain.ScheduledStartDate
上記のうち、クエリは次のとおりです。
DepartmentCode ScheduledStartDate Tmain.TotalSlots T1SubTotalSlots T2SubTotalSlots
DevEng 07/19/2012 40 9 57
Prod 07/19/2012 8 9 57
Rel 07/19/2012 20 9 57
最終結果は次のようになります。
なぜなら、部門 prod と rel には 3 日間の一連の schedulestartdate がないからです
DepartmentCode ScheduledStartDate Tmain.TotalSlots T1SubTotalSlots T2SubTotalSlots
DevEng 07/19/2012 40 9 57
助けてください。