gpt4 book ai didi

mysql - 通过 MySQL 聚合查询执行更新

转载 作者:行者123 更新时间:2023-11-29 00:28:42 25 4
gpt4 key购买 nike

我正在尝试使用来自另一个表的求和语句的结果更新单个表上的字段。为了获得结果,我必须将两个表绑定(bind)在一起并在这两个表中的一个中对一个 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`;

最佳答案

在写这个问题的过程中,我设法找到了解决我自己问题的方法。我确实非常接近让查询工作。显然,我唯一的错误是我在 j.`Auto Number` 之后放置了一个额外的括号。我删除了那个括号,现在代码运行正常。

我想过不发帖,因为我设法弄清楚了我自己的问题,但由于我在搜索这个问题时很难找到答案,我想我还是发帖我的问题和它的答案。

成功代码如下:

UPDATE `t inventory1` 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`;

关于mysql - 通过 MySQL 聚合查询执行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com