日期:2014-05-17 浏览次数:20639 次
select * into # from (
select
'QRD121008401' 出入库单号, '2012-10-28'单据日期, 'S565840A0'存货编码, '男长袖衬衫'存货名称 ,'43/17.4'尺码, 0 上存数量, 1 入库数量 ,0 出库合计, 0 结存数量, 1 ID union all select
'QRD121009006' , '2012-10-28', 'S565840A0', '男长袖衬衫' ,'43/17.4', 1 ,2 ,0, 0 ,2 union all select
'XSC121010041' , '2012-10-18', 'G4046A0' ,'羽绒服' ,'50', 2 ,0 ,1, 1 ,3 union all select
'XSC121014219' , '2012-10-28', 'G4046A0' ,'羽绒服' ,'50', 1, 0 ,1 ,0, 4 union all select
'QCD121008150' , '2012-10-26', 'G4046A0' ,'羽绒服' ,'52' ,2 ,0 ,1, 1 ,5 union all select
'XSC121000678' , '2012-10-01', 'G4046A0' ,'羽绒服' ,'54',1 ,0, 1, 0, 6
) a
select * from #
----以上是测试数据
--这我的写法,可是结存数量这一列不一样.
select
出入库单号,单据日期,存货编码,存货名称,尺码
,上存数量=isnull((select top 1 上存数量 from # WHERE 单据日期=t.单据日期 and 存货编码=t.存货编码 and 尺码=t.尺码 order by ID)
-(select sum(出库合计) from # where 单据日期=t.单据日期 and 存货编码=t.存货编码 and 尺码=t.尺码 and iD<t.ID),上存数量)
,入库数量,出库合计
,结存数量=(select top 1 上存数量+t.入库数量 from # where 单据日期=t.单据日期 and 存货编码=t.存货编码 and 尺码=t.尺码 order by ID)
-(select sum(出库合计) from # where 单据日期=t.单据日期 and 存货编码=t.存货编码 and 尺码=t.尺码 and ID<=t.ID)
,ID
from # t
go
----以下是我的结果
出入库单号 单据日期 存货编码 存货名称 尺码 上存数量 入库数量 出库合计 结存数量 ID
------------ ---------- --------- ---------- ------- ----------- ----------- ----------- ----------- -----------
QRD121008401 2012-10-28 S565840A0 男长袖衬衫 43/17.4 0 1 0 1 1
QRD121009006 2012-10-28 S565840A0 男长袖衬衫 43/17.4 0 2 0 2 2
XSC121010041 2012-10-18 G4046A0 羽绒服 50 2 0 1 1 3
XSC121014219 2012-10-28 G4046A0 羽绒服 50 1 0 &nb