Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Format Kueri T SQL untuk Membangun Tabel Dinamis

Apa yang ingin Anda lakukan disebut pivot

Coba gunakan kode ini

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

Anda dapat memeriksa dokumentasi sql di PIVOT dan UNPIVOT di PIVOT, UNPIVOT SQL , Juga jika Anda menginginkan sesuatu yang lebih dinamis untuk bidang transdate Anda, Anda dapat memeriksa Pivot Dinamis



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kasus Ketika nilai Berbeda kemudian menjumlahkan nilai lain?

  2. SET DATEFIRST – Atur Hari Pertama dalam seminggu di SQL Server

  3. Temukan tanggal/waktu kolom tabel dibuat

  4. IS NULL vs =NULL di mana klausa + SQL Server

  5. Apakah mungkin untuk memilih ORDER BY tertentu di SQL Server 2008?