create table QQQ
(
Q1 NUMBER,
Q2 NUMBER,
Q3 VARCHAR2(15)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
创建如上表,Q3代表日期,q1代表收入,q3代表支出,sql如下:
SELECT a.q3 日期,a.q1 收入,a.q2 支出,
CASE
WHEN a.rw=1
THEN a.q1-a.q2
ELSE (a.Q1-a.Q2)+(SELECT SUM(tt.q1-tt.q2) FROM (SELECT ROWNUM rw1,a.* FROM (SELECT t.* FROM qqq t ORDER BY q3) a) tt WHERE rw1<rw)
END AS 餘額
FROM (SELECT ROWNUM rw,a.* FROM (SELECT t.* FROM qqq t ORDER BY q3) a) a
(
Q1 NUMBER,
Q2 NUMBER,
Q3 VARCHAR2(15)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
minextents 1
maxextents unlimited
);
创建如上表,Q3代表日期,q1代表收入,q3代表支出,sql如下:
SELECT a.q3 日期,a.q1 收入,a.q2 支出,
CASE
WHEN a.rw=1
THEN a.q1-a.q2
ELSE (a.Q1-a.Q2)+(SELECT SUM(tt.q1-tt.q2) FROM (SELECT ROWNUM rw1,a.* FROM (SELECT t.* FROM qqq t ORDER BY q3) a) tt WHERE rw1<rw)
END AS 餘額
FROM (SELECT ROWNUM rw,a.* FROM (SELECT t.* FROM qqq t ORDER BY q3) a) a
解决方案 »
- Oracle 10G 在OLE DB 读取数据的问题
- Oracle数据库怎么收费的!!!详细点 不要复制
- Linux下运行Oracle10g速度很慢。发现ORACLE进程占用SYS高过USER
- 求算法,在线等
- oracle游标问题
- 为什么出现ORA-00001: 违反唯一约束条件
- 在Oracle中,SQL语句是如何执行的?
- 怎么可以写出正确的sql语句??
- SUBSTR如何反向取值?
- sql语句里怎么处理引号?
- 急~~~~~~~寻求高手出山,用存储过程实现对两张结构相同\主键编号相同表进行比较,将比较后结果不同的字段及内容放在临时表中,并能显示出来.
- 有两道题请大家帮忙看看区别几个SQL语句的差别!!
select q3 日期, q1 收入, q2 支出, sum(q2-q1) over(order by q3) 餘額 from qqq;
from tab t1
--------------------------------------select 日期,
(select 收入 from Sales where 日期=c.日期) 收入,
(select 支出 from Sales where 日期=c.日期) 支出,
(select sum(收入-支出) from Sales where 日期<=c.日期 ) 餘額 from Sales c group by 日期
order by 日期
union
select '2000/4/7' , 65 , 60
union
select '2000/4/13' , 80, 20
收入,
支出,
餘額=(select sum(nvl(收入,'0')-nvl(支出,'0')) from tablename where 日期<=a.日期)
from tablename
order by 日期;
------------------------------------------------------
create table sales(日期 datetime,收入 int,支出 int)
/insert into sales
values( to_date('2000/4/2','YYYY/MM/DD') , 50 , 30)
/
insert into sales
values( to_date('2000/4/7','YYYY/MM/DD') , 65 , 60)
/
insert into sales
values( to_date('2000/4/13','YYYY/MM/DD') , 80, 20)
/select 日期,
(select 收入 from Sales where 日期=c.日期) 收入,
(select 支出 from Sales where 日期=c.日期) 支出,
(select sum(收入-支出) from Sales where 日期<=c.日期 ) 餘額
from Sales c
group by 日期
order by 日期
/drop table sales
/
收入,
支出,
(select sum(nvl(收入,'0')-nvl(支出,'0')) from Sales where 日期<=a.日期) 餘額
from Sales a
order by 日期;
select 日期,
收入,
支出,
餘額=(select sum(nvl(收入,'0')-nvl(支出,'0')) from tablename b where b.日期<=a.日期)
from tablename a
order by a.日期;