Я получаю сообщение об ошибке " Операция должна использовать обновляемый запрос ", когда я пытаюсь запустить этот код 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]
).Поле устанавливается следующим образом: