【问题标题】:Access query: Update with a DSum in SET访问查询:使用 SET 中的 DSum 更新
【发布时间】: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] 不同)。字段是这样设置的:

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    希望这对你有用

    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];
    

    【讨论】:

    • 谢谢,但它不起作用。我收到此错误:查询表达式中的语法错误(缺少运算符)“sum(Fatture.Fattura FROM Fatture”
    • 谢谢,但仍然无法正常工作。总是语法错误。这似乎并不容易:')
    • 现在尝试一次,如果您仍然看到错误,请告诉我。请在此处粘贴错误。
    • 也许我找到了为什么它不起作用。我已经更新了这个问题。如果不清楚,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多