Jika Anda menggunakan SQL Server 2005 (atau lebih tinggi), berikut adalah kodenya:
DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)
SELECT @cols = STUFF(( SELECT distinct ',' + QuoteName([Month])
FROM YourTable FOR XML PATH('') ), 1, 1, '')
SET @sqlquery = 'SELECT * FROM
(SELECT Person, Month, Paid
FROM YourTable ) base
PIVOT (Sum(Paid) FOR [Person]
IN (' + @cols + ')) AS finalpivot'
EXECUTE ( @sqlquery )
Ini akan berfungsi tidak peduli berapa banyak status berbeda yang Anda miliki. Ini secara dinamis merakit kueri dengan PIVOT
. Satu-satunya cara Anda dapat melakukan PIVOT dengan kolom dinamis adalah dengan merakit kueri secara dinamis, yang dapat dilakukan di SQL Server.
Contoh lain:
- Mungkin SQL Server PIVOT?
- Bagaimana cara membuat ringkasan dengan bergabung ke satu tabel dengan SQL Server?