【发布时间】:2018-10-12 15:54:51
【问题描述】:
我在尝试运行此 SQL 代码时收到错误“操作必须使用可更新查询”:
UPDATE Progetti
SET Progetti.Eroso = (SELECT sum(Fatture.Fattura) FROM Fatture WHERE Fatture.[Codice Progetto] = Progetti.[Codice Progetto]);
考虑所有涉及的表、字段和关系都存在并且设置正确。问题(根据我)是SELECT 不能在SET 内。对吗?
那么什么是正确的解决方案?
结果必须是:对于每个 Progetti.[Codice Progetto] 放入字段 Progetti.Eroso 中,只有与 Progetti.[Codice Progetto] 相关的 Fatture.Fattura 的总和。
替代方案可以是:
UPDATE Progetti AS a
SET a.Eroso = DSum("Fattura", "Fatture", "[Codice Progetto]=" & a.[Codice Progetto]);
但我收到此警告:
编辑
我尝试过@user4321的解决方案:
UPDATE Progetti
SET Progetti.Eroso = Fatture2.FatturaSum
FROM Progetti
Inner Join (SELECT sum(Fatture.Fattura) as FatturaSum
FROM Fatture) as Fatture2
ON Fatture2.[Codice Progetto] = Progetti.[Codice Progetto];
也许我找到了它为什么不起作用的原因:Fatture.[Codice Progetto] 可能与Progetti.[ID Progetto] 相关联(这与Progetti.[ID Progetto] 不同)。字段是这样设置的:
【问题讨论】: