问题
I have this query:
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]
When i execute this query on access, i get "Syntax Error". Did you see something wrong?
Thank you
回答1:
You can use a DSUM
to sum from a different table in an update query. Subqueries with aggregates won't work, because they're not updateable.
UPDATE t_client
SET [client_history] = DSUM("final_price", "T_PURCHASE", "client_id = " & client_id)
回答2:
Does the syntax work without 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;
来源:https://stackoverflow.com/questions/50091046/access-query-update-with-inner-join