在我的表Progetti
中,我需要使用查询Eroso
更新字段Query2
。
要放在Progetti.Eroso
上的值必须从查询[Fatture Query]
的{{1}}中获取。
问题是我在[Fatture Query].[Codice Progetto] = Progetti.[Codice Progetto]
中使用的SQL可能是错误的,因为我没有预期的结果:系统要求插入Query2
。 [Fatture Query].Sum
中的代码如下。
Query2
编辑
这是UPDATE Progetti SET Progetti.Eroso = [Fatture Query].Sum;
的SQL代码:
[Fatture Query]
答案 0 :(得分:1)
我认为问题在于更新查询未指定[Fatture Query]
中的行与[Progretti]
中的行如何匹配,因此系统不知道要看哪一行。尝试像这样使用WHERE
子句:
UPDATE Progetti SET Progetti.Eroso = [Fatture Query].Sum WHERE [Fatture Query].[Codice Progetto] = Progetti.[Codice Progetto];
答案 1 :(得分:1)
由于您的查询Fatture Query
使用聚合函数(SUM
),因此引用该查询的任何查询将不再可更新,因为一旦记录被建立,便存在固有的一对多关系。聚集。
这样,我相信您将需要使用诸如DSum
之类的函数来为每个要更新的记录计算适当的值,例如:
UPDATE
Progetti
SET
Progetti.Eroso = DSUM("Fattura", "Fatture", "[Codice Progetto] = '" & [Codice Progetto] & "'")
如果相反,您从中查询值的查询未未使用聚合函数(例如SUM
,MIN
,MAX
等),则我建议在您的INNER JOIN
查询中加入一个UPDATE
,以便用于更新目标字段的值来自您Fatture Query
查询中的相应记录,例如:
UPDATE
Progetti
INNER JOIN
[Fatture Query]
ON
Progetti.[Codice Progetto] = [Fatture Query].[Codice Progetto]
SET
Progetti.Eroso = [Fatture Query].Sum