我正在尝试使用另一个表中 sum 语句的结果更新单个表上的字段。为了得到结果,我必须将两个表绑定在一起,并在这两个表之一中求和一个 qty 字段。然后我需要将总数量设置为第三个表中的一个字段。我四处寻找解决方案,并找到了一些答案,但它们不是非常详细的答案,我无法使其适合我的情况。
我想我已经很接近解决方案了,但是我当前的 MySQL 查询无法运行。它告诉我“每个派生表都必须有自己的别名”。这是我的代码:
UPDATE `t inventory` i INNER JOIN
(SELECT Sum(p.Qty) AS SumOfQty, p.Category AS Category, p.StockNu AS StockNu
FROM `t purchorderitems` p INNER JOIN `t jobenv` j ON p.`Order Nu` = j.`Auto Number`)
WHERE ((p.PickedUp) Is Null AND (j.`Date In`) Is Null AND (p.StockItem)='Yes' AND p.Return=0 AND p.TradeIn=0 AND ((`Locked`) Is Null Or `TransType`='LW'))
Group By p.Category, p.StockNu) x ON (x.StockNu = i.STOCKNO) AND (x.Category = i.ABR)
SET i.NumHld = x.`SumOfQty`;