-->

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 :)




02 April 2018

Kompare Tabel Kolom Di Dua Database SQL Server



Hi, Mas bro,....

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

Bagaimana caranya Kompare Kolom yang ada di tabel  tetapi dari dua database menggunakan SQL Server :)

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

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

DECLARE @Db1 NVARCHAR(MAX)
DECLARE @Table1 NVARCHAR(MAX)
DECLARE @Db2 NVARCHAR(MAX)
DECLARE @Table2 NVARCHAR(MAX)
DECLARE @Sql NVARCHAR(MAX)

SET @Db1 = '{Nama Database 1}'
SET @Table1 = '{Nama Tabel l}'
SET @Db2 = '{Nama Database 2}'
SET @Table2 = '{Nama Tabel 2}'
SET @Sql = ' ' +
' SELECT ''in ' + @Db1 + '.' + @Table1 + ' --- not in ' + @Db2 + '.' + @Table2 + ''' AS TITLE, a.TABLE_CATALOG, a.column_name ' +
' FROM ' + @Db1 + '.INFORMATION_SCHEMA.COLUMNS a ' +
' WHERE a.column_name NOT IN (SELECT column_name ' +
' FROM ' + @Db2 + '.INFORMATION_SCHEMA.COLUMNS b ' +
' WHERE b.table_name IN (''' + @Table2 + ''')) ' +
' AND a.table_name IN (''' + @Table1 + ''') ' +

' UNION ALL ' +

' SELECT ''in ' + @Db2 + '.' + @Table2 + ' --- not in ' + @Db1 + '.' + @Table1 + ''' AS TITLE, a.TABLE_CATALOG, a.column_name ' +
' FROM ' + @Db2 + '.INFORMATION_SCHEMA.COLUMNS a ' +
' WHERE a.column_name NOT IN (SELECT column_name ' +
' FROM ' + @Db1 + '.INFORMATION_SCHEMA.COLUMNS b ' +
' WHERE b.table_name IN (''' + @Table1 + ''')) ' +
' AND a.table_name IN (''' + @Table2 + ''') ' +
''

EXEC (@Sql)

Ini Hasilnya :





Selamat mencoba Mas Bro :)




Looping List Data Di SQL Server



Uda lama kaga buka-buka blogger nih mas bro,....

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

Bagaimana caranya Looping List Data didalam Database SQL Server :)

Sering kita binggung bagaimana memecah data dari yang berbentuk list menjadi data perbaris di SQL Server, contohnya :
Isi Data

X = Darwan,Leo,Nardo,Sitepu,

Kita inginkan menjadi :

Darwan
Leo
Nardo
Sitepu

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

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

DECLARE @valueList varchar(8000)
DECLARE @pos INT
DECLARE @len INT
DECLARE @value varchar(8000)

SET @valueList = 'Darwan,Leo,Nardo,Sitepu,'

set @pos = 0
set @len = 0

WHILE CHARINDEX(',', @valueList, @pos+1)>0
BEGIN
    set @len = CHARINDEX(',', @valueList, @pos+1) - @pos
    set @value = SUBSTRING(@valueList, @pos, @len)
    PRINT @value
    set @pos = CHARINDEX(',', @valueList, @pos+@len) +1
END

Ini Hasilnya :





Selamat mencoba Mas Bro :)