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開始刪除資料庫表的時候並不是真正刪除,...