流水帐(100分)

  • 主题发起人 主题发起人 huysnet
  • 开始时间 开始时间
H

huysnet

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要这样一个报表,请问怎么处理
日期 单号 发生 收回 期初末
期初 500
080101 1 200 700
080101 1 200 900
080101 1 200 1100
080101 1 200 1300
080101 1 300 1000
080101 1 200 1200
080101 1 600 600
期末 600
 
日期 单号 发生 收回这几列你直接可以查询出来的,按照你上面的排好序。
期初末即余额取 当前行发生减收回的累计数+期初。
 
create table A(
sid bigint identity(1,1),
日期 varchar(10),
单号 varchar(10),
发生 numeric(18,2),
收回 numeric(18,2),
期初末 numeric(18,2)
)
insert into A(日期, 单号, 发生, 收回)
select '080101', '1', 200, 0 union all
select '080101', '1', 200, 0 union all
select '080101', '1', 200, 0 union all
select '080101', '1', 200, 0 union all
select '080101', '1', 0, 300 union all
select '080101', '1', 200, 0 union all
select '080101', '1', 0, 600
select '期初' as 日期,NULL 单号,NULL 发生,NULL 收回,500 as [期初末] union all
select 日期, 单号, 发生, 收回, (select sum(发生-收回) from A B where B.sid<=A.sid)+500 as [期初末]
from A union all
select '期末' as 日期,NULL 单号,NULL 发生,NULL 收回,(select sum(发生-收回) from A)+500 as [期初末]
 
谢谢,先给你把分加了来,再请问,我想得到的那个500是个动态的数据
比如是A表里面的080101以前的汇总数据,应该怎么写
 
用一条汇总语句即可:
select sum(发生-收回) from A where 期初<'080101'
 
谢谢,我想加入你的群 我的QQ号码 549863750
 
后退
顶部