Jumat, 25 Juni 2021

Pivot - SQL Server

 Report asli:


Report yang diinginkan:


Caranya adalah sebagai berikut:

-------- 1 CREATE TABEL TEMPORARY DAN INSERT VALUES --------------
create table #temp1
(
 Date_Process datetime,
 Category varchar(3),
 Amount money
)
insert into #temp1 values ('1/1/2012', 'ABC', 1000.00)
insert into #temp1 values ('2/1/2012', 'DEF', 500.00)
insert into #temp1 values ('2/1/2012', 'GHI', 800.00)
insert into #temp1 values ('2/10/2012', 'DEF', 700.00)
insert into #temp1 values ('3/1/2012', 'ABC', 1100.00)

--- Cek tabel temporary
select * from #temp1


-------- 2 QUERY PIVOT NYA ---------
--- CARA 1 : Isi dari kolom category terbatas/statis atau sudah ditentukan
--- QUERY PIVOT---
select *
from 
(
  select convert(varchar,Date_Process, 23) Date_Process, Category, Amount
  from #temp1 
) src
pivot
(
  sum(Amount)
  for Category in ([ABC], [DEF], [GHI])
) piv;

--- CARA 2 : Isi dari kolom category tidak terbatas/dinamis. jadi akan muncul kolom sesuai dengan jumlah values/isi nya
--- DYNAMIC QUERY PIVOT---
DECLARE @var_category  AS NVARCHAR(MAX)='';
DECLARE @query AS NVARCHAR(MAX)='';

SELECT @var_category = @var_category + QUOTENAME(Category) + ',' FROM (select distinct Category from #temp1 ) as tmp
select @var_category = substring(@var_category, 0, len(@var_category)) 
set @query = 
'SELECT * from 
(
    select convert(varchar,Date_Process, 23) Date_Process, Amount, Category from #temp1
) src
pivot 
(
    sum(Amount) for Category in (' + @var_category + ')
) piv'

execute(@query)





Jumat, 09 April 2021

Sisipkan/Tambahkan Angka Urut Pada Perintah Select - PostgreSQL

Berikut adalah contoh untuk menambahkan urutan/nomor pada perintah Select di PostgreSQL, sampel di bawah ini adalah contoh case untuk mengurutkan dan memberikan nomor urut pada nasabah yang mempunyai bakidebet secara descending:

select
ROW_NUMBER () OVER (
ORDER BY sum(saldoakhir) desc) urutan
,
noreg, namanasabah, count(norek) ttlnorek, sum(saldoakhir) saldoakhir
from "temporary".tmp_laporan_nominatif_kredit where userid = 12345
group by noreg, namanasabah


Kamis, 08 April 2021

Update Hari Dan Bulan Dalam Suatu Tanggal - PostgreSQL

 Misalkan kita ingin mengupdate atau mengubah hari dan bulan dalam suatu tanggal.

Contoh:
2021-04-11 
2021-05-11 
Dst
Kita ubah menjadi:
2021-03-27 
2021-04-27
Dst

Caranya dapat seperti ini:
update adm_kredit_angsuran aka
set tanggal_jatuh_tempo=tmp.tgljatuh,
tanggal_mulai_tempo=tmp.tglmulai
from (
select id, cast(concat(to_char((tanggal_jatuh_tempo - INTERVAL '1 MONTH'),'yyyy-mm')||'-27') as date) tgljatuh,
cast(concat(to_char((tanggal_mulai_tempo - INTERVAL '1 MONTH'),'yyyy-mm')||'-27') as date) tglmulai
from adm_kredit_angsuran
where batasan_permohonan_kredit = 911) tmp where aka.id=tmp.id

Update Hari Dalam Suatu Tanggal - PostgreSQL

Misalkan kita ingin mengupdate atau mengubah hari dalam suatu tanggal.
Contoh:
2021-04-11 
2021-05-11 
Dst
Kita ubah menjadi:
2021-04-27 
2021-05-27
Dst

Caranya dapat seperti ini:
update adm_kredit_angsuran aka
set tanggal_jatuh_tempo=tmp.tgljatuh,
tanggal_mulai_tempo=tmp.tglmulai
from (
select id, cast(concat(to_char(tanggal_jatuh_tempo,'yyyy-mm')||'-27') as date) tgljatuh,
cast(concat(to_char(tanggal_mulai_tempo,'yyyy-mm')||'-27') as date) tglmulai
from adm_kredit_angsuran
where batasan_permohonan_kredit = 908) tmp where aka.id=tmp.id

Dynamic Query - SQL Server

Berikut adalah contoh dari bentuk dari Dynamic Query di SQL Server yang dibungkus ke dalam Store Procedure:  USE [Data00] GO SET ANSI_NULLS ...

Popular Posts