按行資料累加計算
create table test(
km varchar2(10), --會計科目
dzrq date, --登帳日期
jfje number(18,2), --借方金額
dfje number(18,2), --貸方金額
ye number(18,2) default 0 --餘額
);
insert into test(km,jfje,dfje,dzrq) values('1',300,500,to_date('2006-01-01','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('1',600,800,to_date('2006-01-02','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('2',300,600,to_date('2006-01-01','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('3',700,500,to_date('2006-01-01','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('2',600,500,to_date('2006-01-02','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('2',800,500,to_date('2006-01-03','yyyy-mm-dd'));
insert into test(km,jfje,dfje,dzrq) values('3',300,500,to_date('2006-01-02','yyyy-mm-dd'));
commit;
create or replace procedure p_test
is
cursor cur_mxz is
select rowid,km,dzrq,jfje,dfje,ye
from test
order by km,dzrq;
row_old cur_mxz%rowtype;
begin
row_old.km := 'initial km';
for row_mxz in cur_mxz loop
--if cur_mxz%rowcount>1 then
if row_mxz.km != row_old.km then
row_mxz.ye := row_mxz.jfje - row_mxz.dfje;
else
--大量帶小數位的資料累加等於1資料庫崩潰,oracle的bug,採用先乘100再除100迴避
row_mxz.ye := round((row_old.YE * 100 + row_mxz.JFJE * 100 - row_mxz.DFJE * 100)/100, 2);
end if;
update test set ye = row_mxz.ye
where rowid = row_mxz.rowid;
row_old := row_mxz;
end loop;
commit;
exception
when others then
RAISE_APPLICATION_ERROR(-20000, '累加處理錯誤', TRUE);
end p_test;
/
exec p_test;
select * from test order by km,dzrq;
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18921899/viewspace-1016953/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料倉儲-按周的累加和統計月資料
- 自定義計數器小技巧!CSS 實現長按點贊累加動畫CSS動畫
- 大資料計算生態之資料計算(二)大資料
- 大資料計算生態之資料計算(一)大資料
- SQL對資料進行按月統計或對資料進行按星期統計的例項程式碼SQL
- 拜託,在資料庫中執行計算資料庫
- MySQL按時間統計資料MySql
- 雲端計算資料
- 按位取反運計算方法
- 淺談雲端計算時代的資料庫執行資料庫
- 大資料計算:結構化大資料計算的理想模式大資料模式
- 按自定義週期統計資料
- 關於按周統計資料(Oracle)Oracle
- 雲端計算和資料
- 如何為資料行的新增操作按鈕
- C++:不同迴圈結構計算從1到100的累加和C++
- 按計劃瞭解資料泵expdp/impdp
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- 報表資料外接計算
- 計算資料集均值方差
- 計算機資料的表示計算機
- 雲端計算和大資料大資料
- WPS按工資計算不同面額的鈔票數量
- ByteBuffer按行處理資料(readline)
- shell程式設計例項--實現累加程式設計
- 資料分析與資料探勘 - 04科學計算
- 雲端計算與大資料[4]大資料
- 大資料計算的基石——MapReduce大資料
- 隱私計算資料彙總
- plsql逐行累加SQL
- nuxt3 useFetch 如何做loadMore累加資料狀態UX
- 按使用者進行資料庫邏輯遷移資料庫
- 雲端計算和大資料那個專業好?雲端計算行業未來發展怎麼樣?大資料行業
- 計算表資料真實行長度獲得表真實大小
- 實時計算無線資料分析
- 大資料與雲端計算概論大資料
- python基本資料型別計算Python資料型別
- 人工智慧+大資料+雲端計算人工智慧大資料