Saya membuat beberapa asumsi tentang data yang Anda posting.
Pertama, nilai yang Anda posting semuanya menyatakan tahun sebagai 2011
tetapi tanggal akhir akhir sebagai tajuk kolom tidak sesuai dengan 2011
, mereka adalah Sunday
nilai untuk 2012
jadi saya mengubah data. Juga entri terakhir Early ASN 8/15/2011 12:00
, saya yakin seharusnya Late ASN
entri jika tidak, total yang harus dicocokkan.
Untuk mendapatkan hasil, Anda ingin menerapkan PIVOT
fungsi. Fungsi ini memungkinkan Anda untuk menggabungkan nilai dan kemudian mengonversinya menjadi kolom.
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
Lihat SQL Fiddle dengan Demo