当我尝试运行此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
,仅与Fatture.Fattura
相关的Progetti.[Codice Progetto]
之和。
替代方法可以是:
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]
不同)。该字段的设置方式如下:
答案 0 :(得分:0)
希望这对您有用
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];