想要这个效果怎么实现?求解答
现在查询的结果是这样的
订单编号 物料名称 订购数量 预定交期 库存数量 剩余库存数量
SEORD018476A3.01.01.0002144.002011-07-25461.30317.30
SEORD019189A3.01.01.0002108.002011-08-01461.30353.30
SEORD019381A3.01.01.000245.002011-08-03461.30416.30
SEORD022662A3.01.01.0002108.002011-09-07461.30353.30
SEORD022752A3.01.01.0002108.002011-09-08461.30353.30
SEORD022831A3.01.01.000272.002011-09-09461.30389.30
SEORD024176A3.01.01.000220.002011-09-26461.30441.30
SEORD035922A3.01.01.000260.002012-02-23461.30401.30
怎么做才可以达到这样的效果:
SEORD018476A3.01.01.0002144.002011-07-25461.30317.30
SEORD019189A3.01.01.0002108.002011-08-01461.30209.30
SEORD019381A3.01.01.000245.002011-08-03461.30164.30
SEORD022662A3.01.01.0002108.002011-09-07461.3056.30
SEORD022752A3.01.01.0002108.002011-09-08461.30-51.7
.
..
...
....
注意看最后一列的变化,就是说,下一行的剩余库存数量 = 上一行的剩余库存数量 - 本行订单那数量
按日期升序排列的
请大侠帮忙,在线等,给思路就可以,table, 字段随便写
[解决办法]
没测过,你试试,把[huang]改成你的表名就可以了,列名应该不用改吧
;WITH cte AS (
select [订单编号],[物料名称],[订购数量],[预定交期],[库存数量],[剩余库存数量],ROW_NUMBER()OVER(ORDER BY [预定交期] )id from [huang] )
,cte1 AS
(
SELECT [订单编号],[物料名称],[订购数量],[预定交期],[库存数量],[剩余库存数量],id
FROM cte
WHERE id=1
UNION ALL
SELECT b.[订单编号],b.[物料名称],b.[订购数量],b.[预定交期],b.[库存数量],a.[剩余库存数量]-b.[订购数量],b.id
FROM cte1 a INNER JOIN cte b ON b.id=a.id+1
)
SELECT * FROM cte1