मैंने आपके द्वारा पोस्ट किए गए डेटा के बारे में कुछ धारणाएँ बनाई हैं।
सबसे पहले, आपके द्वारा पूरे वर्ष पोस्ट किए गए मान 2011
. के रूप में बताए गए हैं लेकिन कॉलम हेडर के रूप में अंतिम समाप्ति तिथि 2011
. के अनुरूप नहीं है , वे हैं Sunday
2012
. के लिए मान इसलिए मैंने डेटा बदल दिया। साथ ही Early ASN 8/15/2011 12:00
. की अंतिम प्रविष्टि , मेरा मानना है कि एक Late ASN
माना जाता है प्रविष्टि अन्यथा करने के लिए योग मेल खाते हैं।
परिणाम प्राप्त करने के लिए, आप चाहते हैं कि आप PIVOT
समारोह। यह फ़ंक्शन आपको मानों को एकत्रित करने और फिर उन्हें कॉलम में बदलने की अनुमति देता है।
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
देखें SQL Fiddle with Demo