Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Tiêu đề cột T-SQL Pivot / Unpivot (Transpose) cần thiết làm hàng dữ liệu

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;

Xem SQL Fiddle with Demo




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xuất dữ liệu từ SQL Server sang Excel và tệp Văn bản thông qua gói SSIS

  2. Cách sử dụng chỉ mục trong truy vấn SQL

  3. OPENROWSET với tệp Excel

  4. Làm cách nào để chèn một bảng dữ liệu vào bảng cơ sở dữ liệu SQL Server?

  5. Bỏ khóa ngoại mà không biết tên của ràng buộc?