通过对另一个表中的字段求和来更新表字段[重复]

Posted

技术标签:

【中文标题】通过对另一个表中的字段求和来更新表字段[重复]【英文标题】:Update table field by summing field from another table [duplicate] 【发布时间】:2020-07-16 07:09:58 【问题描述】:

我正在尝试通过对基于 EmpID 的字段求和来更新从另一个表中获取值的表。

tblEmpInfo EmpID 是主键。我在这个网站上看到的帖子很少,但无法采纳到我的文件中。这是我的代码。

UPDATE tblEmpInfo AS c 
INNER JOIN (SELECT EmpID, SUM(ProfidentFund) AS total FROM tblTransactions GROUP BY EmpID)  AS x ON c.EmpID = x.EmpID 
SET c.ProfidentFund = x.total;

上面的代码给了我以下警告,不要将值更新为tblEmpInfo

tblEmpInfo 截图

tblTransactions 截图。

还有我的预期输出。

【问题讨论】:

你试过了吗? ***.com/questions/19789709/… @ismetguzelgun 我已经尝试过DISTINCTROW ,但我没有运气。另一件事是我正在对 ProfidentFund 字段的值求和。 您的脚本似乎合法。我不明白你为什么真的会收到这个错误。求和没什么不寻常的,应该没问题。 This post answer 解决我的问题。 【参考方案1】:

你可以试试下面的-

UPDATE  c 
SET c.ProfidentFund = x.total
from tblEmpInfo AS c
INNER JOIN 
(SELECT EmpID, SUM(ProfidentFund) AS total FROM tblTransactions GROUP BY EmpID)  AS x 
    ON c.EmpID = x.EmpID 

【讨论】:

它给了我Syntax error (missing operator) in query expression...的提示。

以上是关于通过对另一个表中的字段求和来更新表字段[重复]的主要内容,如果未能解决你的问题,请参考以下文章

输出表中的 ACF 灵活内容字段(表头不通过循环重复)

SQL中,如何将三个表中同一字段中的内容汇总到一个字段中?

MYSQL过滤表中某几个字段重复的数据

在oracle中怎么查一个表中的的一个字段的重复数据

如何把SQL数据表中一个字段的值按逗号分隔存入另外一个表,并删除重复记录?

mysql实现按条件更新数据