oracle累計帳問題

2022-11-21 02:05:14 字數 2003 閱讀 3082

1樓:匿名使用者

兩句話實現吧,好看點

--首先把當前日期的金額放到b表裡面

insert into b (名稱,年度,日期,累計總額) select 名稱,to_char(日期,'yyyy'),日期,總額 from a where 日期 = to_date('20100306','yyyymmdd');

--然後把當前日期的金額和比他小的最大日期的金額相加update b b1 set b1.累計總額 = b1.累計總額+ (select 累計總額 from b b2where b2.

名稱 = b1.名稱

and to_char(b2.日期,'yyyy')=b1.年度and b2.日期 in ( select max(日期) from b b3

where b3.名稱=b1.名稱

and b3.年度=b1.年度 ) )

where b1.日期 = to_date('20100306','yyyymmdd');

2樓:匿名使用者

用遊標就可以了

declare

cursor cur is

select 名稱, 總額, to_char(日期, 'yyyy') 年度

from a

where trunc(日期) = trunc(sysdate);

temp_day varchar2(2);

temp_month varchar2(6);

begin

select to_char(sysdate, 'mm'), to_char(sysdate, 'yyyy')

into temp_day, temp_monthfrom dual;

if temp_day = '01' theninsert into b

(名稱, 年度, 日期, 累計總額)

select 名稱, temp_day, temp_month, 總額 from a;

commit;

end if;

for c in cur loop

update b

set 累計總額 = 累計總額 + c.總額where 名稱 = c.名稱

and 年度 = c.年度;

commit;

end loop;

end;

3樓:

先不考慮型別轉換啊

select

a.名稱 名稱

,substr(a.日期0,4) 年度

,a.日期 日期

,a.總額+b.累計總額 累計總額

from a left join (select 名稱,max(日期),累計總額 from b where b.日期<『2010-3-16』 group by 名稱,累計總額) x

on a.名稱=x.名稱

我沒試,大概是這個意思吧

4樓:

create table tt

(name varchar2(20),

dt date,

num number

)-------------------------------------

create table tt2

(name varchar2(20),

ye varchar2(5),

dt date,

num number

)--------------------------select a.name,a.dt,a.

su+b.num as all_sum from (select name,dt,sum(num) su from tt where dt=date '2010-03-16' group by name,dt) a,tt2 b

where a.name=b.name

and a.dt=b.dt;

-------------------------其中tt是你的a表,tt2是你的b表,你看下是不是你要的結果?

關於帳本的問題

1 我認為現金日記帳 銀行存款日記賬 總帳,這三本賬都是經過地方財政部門檢印的釘本賬,必須是要採用的。2 應繳稅金賬 固定資產和累計折舊明細帳 銷售收入和生產成本 本年利潤和利潤分配 還要期間費用賬都有印製現成的釘本賬,也是可以採用的。3 還有一本專門用來記錄所有者權益的資金賬,也是釘本賬,有專門扉...

C訪問Oracle儲存過程問題

換一下引數的順序,如下,試試 oledbparameter oledbparams new oledbparameter 4 oledbparams 0 new oledbparameter p id 5 oledbparams 1 new oledbparameter p shortname aa...

oracle表的問題 當執行 selectfrom t

下面以bin 開頭的都是你以delete方式刪除過的資料,delete資料或者drop表,oracle不會直接刪除這些資料,而是會將這些資料放到oracle的 站中 你可以用purge recyclebin 命令清楚 站之後,再重新查詢 1 從oracle10g開始刪除資料庫表的時候並不是真正刪除,...