Friday, September 4, 2015

Update total tabel header dari sum total tabel detail

Pada pagi ini admin akan membagikan ilmu bagaimana mengupdate tabel header dari nilai yang di sum pada tabel detail.

Pada tabel transaksi jual sesuai dengan normalisasi tabel maka akan terbentuk tabel header (menyimpan informasi no faktur, kode cust, tgl, total harga, total discount, dsb) dan tabel detail (menyimpan rincian faktur mis kode barang, qty, harga per item, dsb).

Kasus yang sering di temui adalah ketika adanya salah perhitungan nilai harga pada detail maka kita bisa melakukan update data dengan perintah sql
 UPDATE <tablename> SET <field>=<nilai> [WHERE <field>=<nilai>]  

Setelah kita update data di detail kita pasti harus mengupdate data di header dengan total dari nilai detail, cara primitif bisa dengan menggunakan manual menuliskan perintah update diatas baris per baris yang tentunya akan memakan waktu dan resiko kesalahan pun bisa terjadi.

Tapi anda tenang saja karena dengan perintah SQL kita bisa langsung menupdateny, berikut query sqlny:

Cth:

TRN_JUAL_HDR (tabel header)
NO_TRAN | TOTAL_HARGA 

TRN_JUAL_DTL (tabel detail)
NO TRAN | AMT_HARGA

Untuk database SQL SERVER
 UPDATE O  
 SET O.TOTAL_HARGA = I.HRG  
 FROM TRN_JUAL_HDR O   
 INNER JOIN  
 (  
    SELECT NO_TRAN, SUM(AMT_HARGA) AS HRG  
    FROM TRN_JUAL_DTL  
    GROUP BY NO_TRAN  
 ) I ON O.NO_TRAN = I.NO_TRAN  
 [WHERE (conditon)]  

Untuk database MySql
 UPDATE TRN_JUAL_HDR o   
 INNER JOIN  
 (  
   SELECT NO_TRAN, SUM(AMT_HARGA) AS HRG  
   FROM TRN_JUAL_DTL  
   GROUP BY NO_TRAN  
 ) i ON o.NO_TRAN = i.NO_TRAN  
 SET O.TOTAL_HARGA = I.HRG  
 [WHERE (conditon)]  

Selamat mencoba.

0 comments:

Post a Comment