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

T Định dạng truy vấn SQL để tạo bảng động

Những gì bạn muốn làm được gọi là pivot

Cố gắng sử dụng mã này

SELECT employeeid
      ,case when [2018-10-1] > 0 then '1' else '' end as [2018-10-1]
      ,case when [2018-10-2] > 0 then '1' else '' end as [2018-10-2]
      ,case when [2018-10-3] > 0 then '1' else '' end as [2018-10-3]
FROM(
SELECT employeeid
     , TranDate
     , 1 as num 
FROM History 
WHERE (CAST(trandate as DATE) = '2018-10-1' 
       or CAST(trandate as DATE) = '2018-10-2' 
       or CAST(trandate as DATE) = '2018-10-3' ) 
)
PIVOT(
COUNT(num)
FOR TranDate IN ([2018-10-1],[2018-10-2],[2018-10-3])
) as pvt

Bạn có thể kiểm tra tài liệu sql về PIVOT và UNPIVOT trên PIVOT, UNPIVOT SQL Ngoài ra, nếu bạn muốn điều gì đó năng động hơn cho các trường chuyển đổi của mình, bạn có thể kiểm tra Xoay vòng động



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các câu trả lời hàng đầu cho 5 câu hỏi nhức nhối về hàm COALESCE trong SQL Server

  2. Cập nhật nếu tên tồn tại khác chèn - trong SQL Server

  3. Lập bản đồ điểm không gian địa lý trong Fluent NHibernate

  4. Tại sao tôi không thể truy vấn truy vấn OFFSET / FETCH trên SQL Server của mình?

  5. Lỗi cam kết GitHub:Quyền bị từ chối nghiêm trọng:Không thể xử lý đường dẫn ~ / App_Data / aspnet-MyProject.mdf