Tôi đã đưa ra một vài giả định về dữ liệu mà bạn đã đăng.
Đầu tiên, tất cả các giá trị bạn đã đăng đều ghi vào năm là 2011
nhưng ngày kết thúc cuối cùng làm tiêu đề cột không tương ứng với 2011
, chúng là Sunday
giá trị cho 2012
vì vậy tôi đã thay đổi dữ liệu. Cũng là mục nhập cuối cùng của Early ASN 8/15/2011 12:00
, Tôi tin rằng nó phải là một Late ASN
nếu không thì các tổng số cần làm sẽ khớp với nhau.
Để nhận được kết quả, bạn muốn, bạn sẽ muốn áp dụng PIVOT
hàm số. Chức năng này cho phép bạn tổng hợp các giá trị và sau đó chuyển đổi chúng thành các cột.
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