首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

想要这个效果如何实现?求解答

2013-04-21 
想要这个效果怎么实现?求解答现在查询的结果是这样的订单编号物料名称订购数量预定交期库存数量剩余库存数

想要这个效果怎么实现?求解答
现在查询的结果是这样的
订单编号         物料名称          订购数量   预定交期        库存数量   剩余库存数量
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

热点排行