Ich habe einige Annahmen zu den von Ihnen geposteten Daten getroffen.
Erstens geben die von Ihnen geposteten Werte alle das Jahr als 2011
an aber die endgültigen Enddaten als Spaltenüberschriften entsprechen nicht 2011
, sie sind der Sunday
Werte für 2012
Also habe ich die Daten geändert. Auch der letzte Eintrag von Early ASN 8/15/2011 12:00
, soll meiner Meinung nach eine Late ASN
sein Eintrag ansonsten stimmen die zu erledigenden Summen überein.
Um die Ergebnisse zu erhalten, sollten Sie den PIVOT
Funktion. Mit dieser Funktion können Sie die Werte aggregieren und sie dann in Spalten umwandeln.
SET DATEFIRST 1 -- set this so the start of the week is Sunday
select InstanceType,
sum([39]) as Sep_23,
sum([38]) as Sep_16,
sum([37]) as Sep_09,
sum([36]) as Sep_02,
sum([35]) as Aug_26,
sum([34]) as Aug_19
from
(
select SPGI01_INSTANCE_TYPE_C as InstanceType,
[39], [38], [37], [36], [35], [34]
from
(
select SPGI01_INSTANCE_TYPE_C,
DatePart(wk, SPGI01_CREATE_S) WeekNo,
DATEADD(DAY, 7 -DATEPART(WEEKDAY,SPGI01_CREATE_S),SPGI01_CREATE_S) WeekEnd
from table1
) x
pivot
(
count(WeekEnd)
for weekno in ([39], [38], [37], [36], [35], [34])
) p
) x1
group by InstanceType with rollup
Siehe SQL Fiddle mit Demo