Posted by : Unknown
Friday, 19 December 2014
Pivot
adalah perintah untuk merubah bentuk
dari suatu bentuk baris menjadi tabel kolom.
Sedangkan Unpivot
adalah perintah untuk merubah bentuk tabel kolom menjadi baris.
Contoh implementasi :
Tabel yang digunakan Detail_trans dan Produk
Selanjutnya karena kedua tabel saling berhubungan (pada
tabel Detail_trans terdapat foreign key id_produk dari tabel Produk) maka harus
ada perintah join. Disini saya menggunakan perintah inner join.
SELECT A.id_trans, A.id_cust, A.id_produk, B.nm_produk, A.jumlah, A.total_harga
FROM Detail_trans AS A
INNER JOIN Produk AS B
ON A.id_produk = B.id_produk
1. Pivot
SELECT * FROM (SELECT A.id_trans, A.id_cust, A.id_produk, B.nm_produk, A.jumlah, A.total_harga
FROM Detail_trans AS A
INNER JOIN Produk AS B
ON A.id_produk = B.id_produk) pvt
PIVOT (min(id_cust)FOR pvt.id_trans
IN([001],[002], [003])) AS cust
2. Unpivot
Perintah di bawah ini untuk
meng-unpivotkan perintah di step pivot di atas.
SELECT * FROM (SELECT A.id_trans, A.id_cust, A.id_produk, B.nm_produk, A.jumlah, A.total_harga
FROM Detail_trans AS A
INNER JOIN Produk AS B
ON A.id_produk = B.id_produk) pvt
pivot (min(id_cust)FOR pvt.id_trans
in([001],[002], [003])) AS cust
unpivot (id_cust for id_trans in([001],[002], [003])) as unpivt