Query Pembuatan Saldo Berjalan di MySQL dan Firebird

Bagi anda yang bergelut di dunia programming mungkin pernah menjumpai kasus pembuatan laporan atau tampilan di Grid di mana hasil akhir(saldo) bersifat dinamis seperti contoh buku kas pada tabel berikut:

Saldo awal Kas:10

IDTRANSAKSI DEBET KREDIT SALDO
1 5 4 11
2 2 1 12
3 23 33 2

Tabel di atas adalah contoh sederhana buku kas di mana rumusnya saldo akhir berjalan langsung bisa diketahui.  Jadi pada baris pertama: 10+5-4=11, baris kedua 11+2-1=12 di mana angka 11 di ambil dari saldo sebelumnya, baris ketiga 12+23-33=2 di mana angka 12 juga di dapat dari saldo sebelumnya dan seterusnya.

Dan berikut implementasi untuk mengetahui saldo berjalan di beberapa database tanpa menggunakan stored procedure ataupun dummy tabel:

MySQL

Buat tabel seperti berikut di MySQL


CREATE TABLE transaksi (
  idtransaksi int(11) NOT NULL auto_increment,
  debet int(11) default NULL,
  kredit int(11) default NULL,
  PRIMARY KEY  (idtransaksi)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Lalu jalankan routine berikut.


set @saldo_awal=10;
select idtransaksi,debet,kredit,
@saldo_awal:=@saldo_awal+debet-kredit as saldo from transaksi;

Firebird

Buat tabel seperti berikut di Firebird:


CREATE TABLE TRANSAKSI
(
  IDTRANSAKSI Integer NOT NULL,
  DEBET Integer DEFAULT 0 NOT NULL,
  KREDIT Integer DEFAULT 0 NOT NULL,
  CONSTRAINT PK_TRANSAKSI_1 PRIMARY KEY (IDTRANSAKSI)
);

Lalu jalankan PSQL tersebut di editor SQL anda.


SET TERM^;
EXECUTE BLOCK
RETURNS ( idtransaksi int,debet int,kredit int,saldo int)
AS
declare saldo_awal integer;
declare mdebet integer;
declare mkredit integer;
BEGIN
saldo_awal= 10;
for select idtransaksi,debet,kredit from transaksi into :idtransaksi,:mdebet,:mkredit
do 
begin
saldo_awal=saldo_awal+mdebet-mkredit;
debet=mdebet;
kredit=mkredit;
saldo=saldo_awal;
suspend;

end
END^
SET TERM;^

Dan berikut adalah hasil PSQL tersebut di atas yang penulis jalankan di FlameRobin.

Query Saldo Berjalan di Firebird

Jika sudah mengerti konsepnya sekarang anda bisa implementasi  query tersebut ke Delphi dan VB.Net.

anasmbahdien

Seorang programmer yang menguasai bahasa pemograman Delphi, VB.NET, PHP dan Android. Untuk hasil karya kunjungi mogotekno.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *