select a.料号 , a.发生数量, a.发生日期, 当时库存 = sum(b.发生数量) from #t a, #t b where a.料号 = b.料号 and a.发生日期 >= b.发生日期 group by a.料号,a.发生数量,a.发生日期 order by a.料号,a.发生数量,a.发生日期
select 料号,发生数量,发生日期 ,当前库存=(select sum(发生数量) from #t where 料号=a.料号 and 发生日期<=a.发生日期) from #t a
--如果料号+发生日期不唯一,则用临时表select 料号,发生数量,发生日期,当前库存=0 into #t1 from #t order by 料号+发生日期 declare @料号 nvarchar(20),@i int update #t1 set @i=case when @料号=料号 then @i+发生数量 else 发生数量 end ,@料号=料号,当前库存=@i select * from #t1 drop table #t1
a.料号 ,
a.发生数量,
a.发生日期,
当时库存 = sum(b.发生数量)
from
#t a,
#t b
where
a.料号 = b.料号 and a.发生日期 >= b.发生日期
group by
a.料号,a.发生数量,a.发生日期
order by
a.料号,a.发生数量,a.发生日期
,当前库存=(select sum(发生数量) from #t where 料号=a.料号 and 发生日期<=a.发生日期)
from #t a
declare @料号 nvarchar(20),@i int
update #t1 set @i=case when @料号=料号 then @i+发生数量 else 发生数量 end
,@料号=料号,当前库存=@i
select * from #t1
drop table #t1