注册 登录
编程论坛 SQL Server论坛

復雜的SELECT要求 復雜的SELECT要求

accpfriend 发布于 2007-01-11 20:19, 512 次点击

TABLE如下
日期 收入 支出
2000/3/1 50 30
2000/3/2 45 60
2000/3/5 60 10

能否用SELECT語句得出以下結果
1.
日期 收入 支出 余額
2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/5 60 10 55
2.
TABLE加入一行
2000/3/5 60 10
結果
日期 收入 支出 余額
2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/5 120 20 105
3.
日期 收入 支出 余額
2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/3 0 0 5
2000/3/4 0 0 5
2000/3/5 120 20 105
相信這種情況不少人遇到

4 回复
#2
棉花糖ONE2007-01-11 21:23

if object_id('t') is not null
drop table t
go
create table t(riqi varchar(8),shouru int,zhichu int)
insert into t select '2000/3/1',50,30
union select '2000/3/2',45,60
union select '2000/3/5',60,10
select * from t
select riqi as 日期,shouru as 收入,zhichu as 支出,余额=(select sum(shouru)-sum(zhichu) from t where riqi<=t1.riqi) from t t1

结果
日期 收入 支出 余额
-------- ----------- ----------- -----------
2000/3/1 50 30 20
2000/3/2 45 60 5
2000/3/5 60 10 55

(所影响的行数为 3 行)

2. select riqi as 日期,sum(shouru) as 收入,sum(zhichu) as 支出,余额=(select sum(shouru)-sum(zhichu) from t where riqi<=t1.riqi) from t t1 group by riqi

[此贴子已经被作者于2007-1-11 21:41:37编辑过]

#3
棉花糖ONE2007-01-11 21:30
第三题,我只能借助临时表,如果是用查询我也做不出来,帮你顶
#4
accpfriend2007-01-12 11:13
可以用临时表
#5
accpfriend2007-01-12 12:12

谢谢版主,测试通过,

1