13:23:37 SQL> select * from tbtemp; 借方 贷款 余额
---------- ---------- ----------
200 100 100
50 100 50
50 100 0已用时间: 00: 00: 00.15
13:23:43 SQL> select t.*,tt.余额+t.借方-t.贷款 yu_e from
13:23:47 2 (select rownum id,tbtemp.* from tbtemp) t,
13:23:47 3 (select rownum+1 id,tbtemp.* from tbtemp) tt
13:23:47 4 where t.id=tt.id(+); ID 借方 贷款 余额 YU_E
---------- ---------- ---------- ---------- ----------
1 200 100 100
2 50 100 50 50
3 50 100 0 0已用时间: 00: 00: 00.15
13:23:47 SQL>
---------- ---------- ----------
200 100 100
50 100 50
50 100 0已用时间: 00: 00: 00.15
13:23:43 SQL> select t.*,tt.余额+t.借方-t.贷款 yu_e from
13:23:47 2 (select rownum id,tbtemp.* from tbtemp) t,
13:23:47 3 (select rownum+1 id,tbtemp.* from tbtemp) tt
13:23:47 4 where t.id=tt.id(+); ID 借方 贷款 余额 YU_E
---------- ---------- ---------- ---------- ----------
1 200 100 100
2 50 100 50 50
3 50 100 0 0已用时间: 00: 00: 00.15
13:23:47 SQL>
解决方案 »
- 请教以下语句如何改造成查询不重复记录
- ORA-12638:身份证明检索失败
- 在ORACLE中,ASCIISTR()与ASCII()有什么不同?
- Oracle9i SQL问题?
- 怎样将日期型数据转换成字符串 ,不是在sql语句中转换 各位大哥帮帮忙
- 求救:本人在linux下oracle10G数据库中用"exp"导出备份出现一下错误。请教高手指导........
- 请问 数据库名.ora 文件误删还能恢复吗?
- TNS Listener错误,客户端连接太多,超过限制,如何解决呢?
- 在数据库中使用select into 语句为什么老是出错
- pro c不支持这样insert 吗?
- 有了客户的license号,怎么才能在metalink.oracle.com注册成功呢?让输入CSI号,是否就是许可号呢?
- 创建特殊唯一索引时的问题???
13:27:49 SQL> select tbtemp.*,lag(余额,1,null) over(order by rowid) + 借方-贷款 from tbtemp; 借方 贷款 余额 LAG(余额,1,NULL)OVER(ORDERBYROWID)+借方-贷款
---------- ---------- ---------- --------------------------------------------
200 100 100
50 100 50 50
50 100 0 0已用时间: 00: 00: 00.16
13:28:19 SQL>
---------- ---------- ----------
200 100 100
50 100 50
50 100 0已用时间: 00: 00: 00.16
10:22:27 SQL> update tbtemp set 余额=(
10:22:32 2 select ye from (
10:22:32 3 select rowid rid,lag(t.余额,1,null) over(order by t.rowid)+t.借方-t.贷款 ye
10:22:32 4 from tbtemp t) tt
10:22:32 5 where tt.rid=tbtemp.rowid);已更新3行。已用时间: 00: 00: 00.16
10:22:33 SQL> select * from tbtemp; 借方 贷款 余额
---------- ---------- ----------
200 100
50 100 50
50 100 0已用时间: 00: 00: 00.15
10:22:35 SQL>
lag(t.余额,1,null) over(order by t.rowid)是啥意思呀?lag和over。
借方 贷款 余额
---------- ---------- ----------
200 100 (100)
50 100 50
50 100 0第一行也需要有呀
update tbtemp set 余额=(
select ye from (
select rowid rid,lag(t.余额,1,0) over(order by t.rowid)+t.借方-t.贷款 ye
from tbtemp t) tt
where tt.rid=tbtemp.rowid);
---------- ---------- ----------
200 100 120
50 100 50
50 100 0已用时间: 00: 00: 00.15
08:45:27 SQL> update tbtemp set 余额=(
08:45:32 2 select ye from (
08:45:32 3 select rowid rid,lag(t.余额,1,0) over(order by t.rowid)+t.借方-t.贷款 ye
08:45:32 4 from tbtemp t) tt
08:45:32 5 where tt.rid=tbtemp.rowid);已更新3行。已用时间: 00: 00: 00.16
08:45:33 SQL> select * from tbtemp; 借方 贷款 余额
---------- ---------- ----------
200 100 100
50 100 70
50 100 0已用时间: 00: 00: 00.16
08:45:36 SQL>
set @ye=0
update TMPDKGLHTTZCXTab set @ye=@ye+isnull(F_JFJE,0)-isnull(F_DFJE,0),F_YE=abs(@ye)如何改成Oracle得
ye number;
begin
ye:=0;
update TMPDKGLHTTZCXTab --这个update语句是什么意思?
set @ye=ye+nvl(F_JFJE,0)-nvl(F_DFJE,0),F_YE=abs(ye);
end;
/
---------- ---------- ----------
200 100
50 100
50 100已用时间: 00: 00: 00.00
16:22:22 SQL> update
16:22:29 2 t1 c
16:22:29 3 set
16:22:29 4 余额=(select
16:22:29 5 (select sum(余额) from
16:22:29 6 (select rownum rid,借方,贷款,借方-贷款 余额 from t1) b where
b.rid<=a.rid) 余额
16:22:29 7 from
16:22:29 8 (select rowid roid,rownum rid,借方,贷款,借方-贷款 余额 from t1)
a where a.roid=c.rowid);已更新3行。已用时间: 00: 00: 00.16
16:22:29 SQL> select * from t1; 借方 贷款 余额
---------- ---------- ----------
200 100 100
50 100 50
50 100 0已用时间: 00: 00: 00.00