Kamis, 09 Januari 2020

Looping IF dan Update Tanggal - PostgreSQL

CASE:
Kita ingin mengubah tanggalnya aja, tanpa mengubah tahun dan bulannya

DO $$
    Declare idkrt int;   
        Declare bulanke int;   
        DECLARE idaset int;   
        Declare jwl date;
        DECLARE jmlhari int;
        DECLARE tanggal int;
    cur1 CURSOR for select id,
                                                depresiasi_bulan_ke,
                                                id_aset_inventaris,
                                                jwl_depresiasi,
                                             DATE_PART('days',
        DATE_TRUNC('month', jwl_depresiasi)
        + '1 MONTH'::INTERVAL
        - '1 DAY'::INTERVAL
    ) jumlah_hari   
                                    from m_kartu_aset_inventaris where id_aset_inventaris in (2659, 2658)  order by id_aset_inventaris, depresiasi_bulan_ke;   
 begin 
OPEN Cur1 ; 
Loop     


    FETCH  next from Cur1 INTO idkrt, bulanke, idaset, jwl, jmlhari;    
    EXIT WHEN NOT FOUND;
   
select (date_part('day', tanggal_beli)) into tanggal from m_aset_inventaris where id=idaset;
   
    if jmlhari >= tanggal then
    update m_kartu_aset_inventaris
    set jwl_depresiasi=cast(CONCAT(DATE_PART('YEAR',jwl_depresiasi),'-',DATE_PART('MONTH',jwl_depresiasi),'-',tanggal) as date)
    where id_aset_inventaris=idaset and depresiasi_bulan_ke=bulanke;
    END IF;
   
    if jmlhari < tanggal then
        update m_kartu_aset_inventaris
    set jwl_depresiasi=cast(CONCAT(DATE_PART('YEAR',jwl_depresiasi),'-',DATE_PART('MONTH',jwl_depresiasi),'-',jmlhari) as date)
    where id_aset_inventaris=idaset and depresiasi_bulan_ke=bulanke;
    END IF;

end loop ;  
CLOSE Cur1; 
END $$;

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