Jeg lavede et par antagelser om de data, du postede.
For det første angiver alle de værdier, du har sendt, året som 2011
men de endelige slutdatoer som kolonneoverskrifter svarer ikke til 2011
, de er Sunday
værdier for 2012
så jeg ændrede dataene. Også den sidste indtastning af Early ASN 8/15/2011 12:00
, tror jeg formodes at være en Late ASN
indtastning ellers stemmer overens med totalerne.
For at få de resultater, du ønsker, skal du anvende PIVOT
fungere. Denne funktion giver dig mulighed for at aggregere værdierne og derefter konvertere dem til kolonner.
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