日期:2014-05-18  浏览次数:20829 次

更新
Select 库位编号,产品编号,收入数量 = SUM(收入数量),发出数量=Sum(发出数量),结存数量=Sum(期初数据+收入数量-发出数量)
from chan 
Group by 库位编号,产品编号 
update chan set 结存数量=(select SUM (期初数据+收入数量-发出数量)
where 日期='2012-4-4')



我想更新 日报表的 “结存数据”到最近的日期里面  

谢谢!

------解决方案--------------------
update chan set 结存数量=SUM (期初数据+收入数量-发出数量)
where 日期='2012-4-4'
------解决方案--------------------
使用with t公用表达式或者临时表。把查询语句的结果放在里面

探讨

消息 157,级别 15,状态 1,第 1 行
聚合不应出现在 UPDATE 语句的集合列表中。

怎么办?

------解决方案--------------------
update chan set 结存数量=(select SUM (期初数据+收入数量-发出数量) from chan)
where 日期='2012-4-4'

试试
------解决方案--------------------
update tb 
set 结存数量=(select SUM (期初数据+收入数量-发出数量) from tb s where 库位编号=tb.库位编号 and 产品编号=tb.产品编号 and 日期='2012-4-4')