Berikut adalah alternatif query untuk menampilkan pivot table dari 2 (dua) tabel. Contoh kedua tabel adalah sebagai berikut:
Table_1
kode | nama |
T1 | Tunjangan Allowance |
T2 | Tunjangan THR |
T3 | Tunjangan Jabatan |
Table_2
kode | nilai |
T1 | 1000 |
T2 | 2000 |
T3 | 500 |
Hasil dari pivot yang diinginkan adalah sebagai berikut:
Tunjangan Allowance | Tunjangan THR | Tunjangan Jabatan |
1000 | 2000 | 500 |
Untuk mendapatkan hasil tersebut gunakan query berikut:
DECLARE @CQUERY AS VARCHAR(MAX)
DECLARE @CKODE VARCHAR(50),
@CNAMA VARCHAR(50)
DECLARE C_Cursor INSENSITIVE CURSOR
FOR
SELECT kode, nama
FROM Table_1
SET @CQUERY = 'SELECT '
OPEN C_Cursor
FETCH NEXT FROM C_Cursor INTO @CKODE, @CNAMA
WHILE @@FETCH_STATUS = 0
BEGIN
SET @CQUERY = @CQUERY + 'SUM(CASE WHEN kode = ''' + @CKODE + ''' THEN nilai ELSE 0 END) AS [' + @CNAMA + ']'
FETCH NEXT FROM C_Cursor INTO @CKODE, @CNAMA
IF @@FETCH_STATUS = 0 SET @CQUERY = @CQUERY + ', ' + CHAR(13)
END
CLOSE C_Cursor
DEALLOCATE C_Cursor
SET @CQUERY = @CQUERY + CHAR(13) + 'FROM Table_2 '
EXECUTE(@CQUERY)
Semoga bermanfaat…