Friday, 10 July 2015

Find the Running Total in Oracle

1.create table rtotal ( db_amt number,cr_amt number,acc_no number);

2.Inserting data into table

INSERT INTO "SCOTT"."RTOTAL" (DB_AMT, CR_AMT, ACC_NO) VALUES ('100', '0', '1001')
INSERT INTO "SCOTT"."RTOTAL" (CR_AMT, ACC_NO) VALUES ('300', '1001')
INSERT INTO "SCOTT"."RTOTAL" (DB_AMT, ACC_NO) VALUES ('300', '1002')
INSERT INTO "SCOTT"."RTOTAL" (CR_AMT, ACC_NO) VALUES ('10000', '1001')
INSERT INTO "SCOTT"."RTOTAL" (CR_AMT, ACC_NO) VALUES ('200', '1002')
Commit Successful


3.Create the function as follow

create or replace function rt(rowid1 varchar2,P_acc_no number) return number as
cursor c1 is select  sum(db_Amt)-sum(cr_amt) from rtotal where rowid<=rowid1 and ACC_NO=P_acc_no;
bal_amt number;
begin
open c1;
loop
fetch c1 into bal_amt;
exit when c1%notfound;
end loop;
close c1;
return bal_amt;
end;

4.Query th records
select db_Amt,cr_amt,rt(rowid,1001) from rtotal where acc_no=1001;

output as follow


No comments:

Post a Comment