Access - запросить обновление с помощью Inner Join - PullRequest
0 голосов
/ 29 апреля 2018

У меня есть этот запрос:

UPDATE client
SET client.[client_history] = 10
FROM  [T_CLIENT] AS client
     INNER JOIN (SELECT [client_id], SUM([final_price])
            FROM [T_PURCHASE]
            GROUP BY [client_id]) AS p
     ON client.[client_id] = p.[client_id]

Когда я выполняю этот запрос при доступе, я получаю «Синтаксическая ошибка». Вы видели что-то не так?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Вы можете использовать DSUM для суммирования из другой таблицы в запросе на обновление. Подзапросы с агрегатами не будут работать, потому что они не обновляются.

UPDATE t_client
SET [client_history] = DSUM("final_price", "T_PURCHASE", "client_id = " & client_id)
0 голосов
/ 29 апреля 2018

Синтаксис работает без FROM:

UPDATE [T_CLIENT] AS client INNER JOIN
       (SELECT [client_id], SUM([final_price])
        FROM [T_PURCHASE]
        GROUP BY [client_id]
       ) AS p
      ON client.[client_id] = p.[client_id]
    SET client.[client_history] = 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...