Có một vài điều khó hiểu mà bạn đang làm.
Đầu tiên, thông thường bạn sẽ bỏ chia nhiều cột. Ngay bây giờ, bạn đang giải nén một cột và có vẻ như bạn đang làm điều đó chỉ để đổi tên cột?
Thứ hai, bạn đang tổng hợp dữ liệu hai lần, PIVOT sẽ có thể xử lý việc tổng hợp bằng cách sử dụng SUM()
.
Thứ ba, không rõ tại sao bạn cần tiêu đề cột dưới dạng một hàng, bạn muốn tiêu đề cột được gọi là gì?
Dựa trên dữ liệu mẫu của bạn, bạn sẽ có thể chỉ áp dụng hàm PIVOT:
select 'TotalRecords' TotalRecords,
[2012],
[2013],
[All]
from tbleirstatisticsoverviewsummary
pivot
(
sum(totalrecords)
for FiscalYear IN ([2012],[2013],[ALL])
) p;
Xem SQL Fiddle với Demo . Sau đó, nếu bạn muốn một hàng có tiêu đề cột, thì bạn có thể sử dụng UNION ALL:
select 'colname' col1,
2012 col2,
2013 col3,
'All' col4
union all
select 'TotalRecords' TotalRecords,
[2012],
[2013],
[All] = cast([all] as varchar(10))
from tbleirstatisticsoverviewsummary
pivot
(
sum(totalrecords)
for FiscalYear IN ([2012],[2013],[ALL])
) p;