Jumat, 29 November 2019

Hitung Selisih Angka dengan Setelahnya - PostgreSQL

CREATE TABLE TEMP_ID_IDPK AS
SELECT ID FROM adm_permohonan_kredit ORDER BY ID ASC

CREATE TABLE TEMP_RANGE_IDPK
( AWAL INT, AKHIR INT, SELISIH INT)


DO $$
    Declare ik1 INTEGER;    
    cur1 CURSOR for SELECT * FROM TEMP_ID_IDPK ORDER BY ID ASC;
begin   
OPEN Cur1 ; 
Loop   
    FETCH  next from Cur1 INTO ik1;    
    EXIT WHEN NOT FOUND;
        INSERT INTO TEMP_RANGE_IDPK
        (awal, akhir)
        select ik1, id
        from TEMP_ID_IDPK WHERE ID >(SELECT ID FROM TEMP_ID_IDPK WHERE ID=ik1)
            ORDER BY ID ASC LIMIT 1; 
end loop ;  
CLOSE Cur1; 
END $$;

update TEMP_RANGE_IDPK
set selisih=akhir-awal;


select * from TEMP_RANGE_IDPK
where selisih >100
order by selisih desc

-------------------------
CREATE TABLE TEMP_ID_AKA1 AS
SELECT ID, ROW_NUMBER() OVER (ORDER BY ID) ROWNUMBER FROM adm_kredit_angsuran  ORDER BY ID ASC

CREATE TABLE TEMP_ID_AKA2 AS
SELECT ID, ROW_NUMBER() OVER (ORDER BY ID) ROWNUMBER FROM adm_kredit_angsuran WHERE ID<>1 ORDER BY ID ASC

SELECT *, sum(id1+1) awalid_kosong, sum(id2-1) akhirid_kosong FROM (
SELECT A.ID ID1, B.ID ID2, SUM(B.ID-A.ID) RANGEID FROM TEMP_ID_AKA1 A, TEMP_ID_AKA2 B
WHERE A.ROWNUMBER=B.ROWNUMBER
GROUP BY A.ROWNUMBER,A.ID, B.ID
ORDER BY A.ID ASC) A
WHERE RANGEID>100
group by id1, id2, rangeid
ORDER BY RANGEID DESC

Tidak ada komentar:

Posting Komentar

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