我的更新查询出现语法错误

时间:2019-06-20 08:20:45

标签: mysql ms-access

我正在尝试通过汇总另一张表中另一列的数据来更新一列,但我不明白为什么我总是收到语法错误。

UPDATE [Reference No - Quotation] RQ
INNER JOIN [Customer- Quotation] CQ ON CQ.ReferenceID = RQ.ReferenceID
SET RQ.[Total Cost (Monthly)] =SUM(CQ.[Total Amount]) 
WHERE = RQ.[ReferenceID] = CQ.[ReferenceID];

2 个答案:

答案 0 :(得分:0)

使用GROUP BY所需的SUM使查询成为只读。使用临时表或域函数(DSum等)或此类肮脏的MS Access hack:

UPDATE [Reference No - Quotation] RQ
INNER JOIN [Customer- Quotation] CQ ON CQ.ReferenceID = RQ.ReferenceID
SET RQ.[Total Cost (Monthly)] = 0 
WHERE RQ.[ReferenceID] = CQ.[ReferenceID];
UPDATE [Reference No - Quotation] RQ
INNER JOIN [Customer- Quotation] CQ ON CQ.ReferenceID = RQ.ReferenceID
SET RQ.[Total Cost (Monthly)] = RQ.[Total Cost (Monthly)] + CQ.[Total Amount])
WHERE RQ.[ReferenceID] = CQ.[ReferenceID];

答案 1 :(得分:-2)

这是错误的,因为已更正了注释:

据我所知,在使用UPDATE查询时,Access必须是可修改的两个表,因此使用INNER JOIN会导致查询结果为只读。在这种情况下,我使用临时表:

  • 通过您的INNER JOIN查询创建临时表
  • 使用临时表作为更新源