日期:2014-05-18  浏览次数:20409 次

(SQL求助)相信這種情況不少人遇到
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
相信這種情況不少人遇到


------解决方案--------------------
select 日期 , 收入 =sum(收入) , 支出=sum(支出),余額=sum(收入)-sum(支出) from 表 group by 日期
------解决方案--------------------
create table #a(d datetime,i int,o int,num int)
--试试
insert #a
select '2000/3/1 ' ,50, 30 ,null union all
select '2000/3/2 ' ,45, 60 ,null union all
select '2000/3/5 ' ,60, 10,null union all
select '2000/3/5 ' ,60, 10,null

declare @num int
set @num = 0

update #a
set @num = @num + i - o,num = @num

select * from #a

drop table #a


d i o num
------------------------------------------------------ ----------- ----------- -----------
2000-03-01 00:00:00.000 50 30 20
2000-03-02 00:00:00.000 45 60 5
2000-03-05 00:00:00.000 60 10 55
2000-03-05 00:00:00.000 60 10 105