Запрос доступа: обновление с помощью DSum в SET - PullRequest
0 голосов
/ 11 октября 2018

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

Но я получаю это предупреждение:

enter image description here

РЕДАКТИРОВАТЬ

Я пробовал решение @ 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]).Поле устанавливается следующим образом:

enter image description here enter image description here

1 Ответ

0 голосов
/ 11 октября 2018

надеюсь, что это работает для вас

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];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...