Man*_*ngh 4 ms-access ms-access-2007 sql-update
我想通过使用access in access更新表 - 2007
UPDATE TABLE1 A INNER JOIN (SELECT ACCODE, SUM(AMOUNT) AS SUM_AMOUNT
FROM TABLE2 GROUP BY ACCODE) B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT
Run Code Online (Sandbox Code Playgroud)
它给了我错误
操作必须使用可更新的查询
我已尝试使用以下查询,此处没有错误
UPDATE TABLE1 A INNER JOIN TABLE2 B ON A.ACCODE = B.ACCODE
SET A.TRIAL = A.TRIAL + SUM_AMOUNT
Run Code Online (Sandbox Code Playgroud)
请帮我找出第一个查询有什么问题
我认为Access将您的查询视为不可更新的原因是由于子查询GROUP BY
.您应该能够使用创建可更新的查询DSum
.
UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
+ DSum("AMOUNT", "TABLE2", "ACCODE=" & a.ACCODE)
Run Code Online (Sandbox Code Playgroud)
如果ACCODE
是文本而不是数字数据类型,请在DSum
表达式中的值周围添加引号.
UPDATE TABLE1 AS a
SET a.TRIAL = a.TRIAL
+ DSum("AMOUNT", "TABLE2", "ACCODE='" & a.ACCODE & "'")
Run Code Online (Sandbox Code Playgroud)