- Pivot
Digunakan untuk merubah nilai pada sebuah kolom menjadi beberapa kolom.langkah pertama buat dulu table pada MS SQL Server susunan table seperti dibawah ini :
CREATE TABLE sales (
sal_kode varchar(4),
sal_bln int,
sal_omset int
)
setelah itu isikan dengan data
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S001','1','20000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S002','2','35000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S003','1','22000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S001','2','22000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S003','2','20700')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S001','3','39000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S003','3','77000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S001','4','80000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S002','4','13000')
INSERT INTO sales (sal_kode, sal_bln, sal_omset) VALUES ('S005','4','34500')
periksa kembali isian data yang tadi di olah dengan mengetikan perintah
SELECT * FROM sales
terlihat data yang tampil seperti pada gambar dibawah ini :
sekarang dari data table sales di sql server akan dibuat rekap omset perbulan dengan menggunakan metode PIVOT Table MS SQL Server.
SELECT 'Total Omset' AS TotalBulananSales,
[1],[2],[3],[4]
FROM
(SELECT sal_bln, sal_omset FROM sales) AS TabelSalesSumber
PIVOT
(
SUM(sal_omset)
FOR sal_bln
IN ([1],[2],[3],[4])
) AS PivotTabelSalesBulanan
hasilnya terlihat seperti ini :
Pada contoh diatas saya hanya membuat rekapan omset sales hanya sampai dengan bulan ke 4 jika ingin membuat sampai bulan 12 pada data satu tahun bisa langsung tambahkan saja pada field sampai 12, dan bisa juga berdasarkan nilai pencarian pada kode sales seperti contoh dibawah ini
SELECT 'Total Omset' AS TotalBulananSales,
sal_kode,
[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]
FROM
(SELECT sal_bln, sal_omset, sal_kode
FROM sales WHERE sal_kode='S002') AS TabelSalesSumber
PIVOT
(
SUM(sal_omset)
FOR sal_bln
IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
) AS PivotTabelSalesBulanan
hasil akhir seperti ini
- Unpivot
Digunakan untuk merubah kolom menjadi barisUntuk memahami perintah unpivot, buat sebuah table seperti dibawah ini,
CREATE TABLE bulanansales (
sal_kode varchar(4),
sal_jan int,
sal_feb int,
sal_mar int,
sal_apr int,
sal_mei int,
sal_jun int,
sal_jul int,
sal_agt int,
sal_sep int,
sal_okt int,
sal_nov int,
sal_des int
)
setelah itu isikan datanya seperti isian sampai tampil seperti dibawah ini dengan mengetikan perintah
SELECT * FROM bulanansales
Berdasarkan dari table yang ditampilkan semisalkan ingin merubah kolom menjadi baris per kode sales maka perintahnya bisa menggunakan UNPIVOT secara lengkapnya :
SELECT sal_kode, bulan, totalpenjualan
FROM
(SELECT sal_kode, sal_jan, sal_feb, sal_mar, sal_apr, sal_mei, sal_jun,
sal_jul, sal_agt, sal_sep, sal_okt, sal_nov, sal_des
FROM bulanansales WHERE sal_kode='A001') P
UNPIVOT
(
totalpenjualan FOR bulan IN
(
sal_jan, sal_feb, sal_mar, sal_apr, sal_mei, sal_jun,
sal_jul, sal_agt, sal_sep, sal_okt, sal_nov, sal_des
)
) AS tableUnpivot
hasil yang ditampilkan seperti dibawah ini
Demikian penjelasan mengenai pivot dan unpivot di microsoft sql server, semoga bermanfaat bagi yang memerlukannya. mohon maaf jika terjadi kesalahan dalam penyampaian
EmoticonEmoticon