-->

03 April 2018

Mengubah Kolom Menjadi Baris Di SQL Server



Hi, Mas bro,....

Aku mau berbagi ilmu lagi nich mas bro,
mumpung aku inget ya...

Bagaimana caranya mengubah kolom menjadi baris di SQL Server  :)

Gini....ni..cara ngebuatnya mas bro :)

Langkahnya :
Buka SQL SERVER Editor, lalu Copy Paste Script dibawah ini mas bro

--Membuat table temporary
create table #Temp_Table
(
   id_customer int,
   book varchar(64),
   price int,
   qty int,
   tahun_terbit int
)

insert into  #Temp_Table  values ('1','SQL Backup','1200000','10','2016')
insert into  #Temp_Table  values ('2','Hosting SQL','1500000','20','2016')
insert into  #Temp_Table  values ('3','SQL Server Training','2000000','15','2016')
insert into  #Temp_Table  values ('4','Database Administrator','1000000','22','2016')
insert into  #Temp_Table  values ('5','Cloud Database','130000','31','2017')
insert into  #Temp_Table  values ('6','Cloud Database 1','130000','31','2017')
insert into  #Temp_Table  values ('7','Cloud Database 2','130000','31','2018')
insert into  #Temp_Table  values ('8','Cloud Database 3','130000','31','2018')
insert into  #Temp_Table  values ('9','Cloud Database 4','130000','31','2018')
insert into  #Temp_Table  values ('10','Cloud Database 5','130000','31','2018')

--Deklarasikan variabel-variabel yang diperlukan
DECLARE   @SQLQuery AS NVARCHAR(MAX)
DECLARE   @PivotColumns AS NVARCHAR(MAX)

--mendapatkan kolom yang akan di jadikan kunci pada pivot column  
SELECT   @PivotColumns= COALESCE(@PivotColumns + ',','') + QUOTENAME(tahun_terbit)
FROM (SELECT DISTINCT tahun_terbit FROM [dbo].[#Temp_Table]) AS PivotExample

 
--Membuat Query dinamis dengan semua nilai untuk kolom pivot pada waktu proses
SET   @SQLQuery = 
    N'SELECT DISTINCT id_customer,book,price, ' +   @PivotColumns + '
 FROM [dbo].[#Temp_Table] 
    PIVOT( sum(qty)
          FOR tahun_terbit IN (' + @PivotColumns + ')) AS P'

--Jalankan Query Dinamis yang tadi sudah di jabarkan
EXEC sp_executesql @SQLQuery

Ini Hasilnya :





Selamat mencoba Mas Bro :)




Tidak ada komentar:

Posting Komentar