带有求和结果的SQL更新表

时间:2015-11-17 23:19:29

标签: mysql sql

我有两张桌子("短缺","订单")。短缺包含每个材料一次,订单是所有材料订单。我正在尝试使用Orders中所有材料订单的总和来更新Shortages字段CurrentWeek。

我不是一个SQL大师,这让我很难过。我用google搜索了一些内容,但似乎无法正常工作。

我可以编写一个选择查询来获取我想要的所有WHERE子句但我无法将值输入到另一个表中。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

听起来你想要这样的东西:

UPDATE Shortages
   SET CurrentWeek = (SELECT SUM(quantity)
                        FROM Orders
                       WHERE Orders.Material = Shortages.Material
                         AND <which records in Orders count toward the current Shortages record>)
 WHERE <which records in Shortages you want to update>

显然,您需要使用正确的列名修改它。

答案 1 :(得分:0)

首先获取SUM(),然后执行更新加入。像下面的东西(**这是一个演示查询,但希望你明白这一点)

update Shortages s
join (
select orderid, sum(order_qty) as total_qty
from orders
group by orderid ) xxx on s.orderid = xxx.orderid
set s.CurrentWeek = xxx.total_qty;