Access中按ID汇总另一表数据并更新SUM字段求助
Access 按ID汇总更新字段解决方法
针对你遇到的“operation must use an updateable query”错误,这是因为Access直接关联聚合(GROUP BY)查询进行更新时,聚合结果属于不可更新数据集导致的。以下是两种可行的解决方法:
方法一:使用子查询直接更新
通过子查询先完成ID的数值汇总,再关联主表进行更新,SQL脚本如下:
UPDATE Second_table INNER JOIN ( SELECT ID, SUM(Number) AS TotalNumber FROM First_table GROUP BY ID ) AS SumAggregate ON Second_table.ID = SumAggregate.ID SET Second_table.[SUM] = SumAggregate.TotalNumber;
注意:SUM是Access的保留关键字,建议用方括号[SUM]包裹字段名,避免语法冲突。
方法二:先创建汇总查询再更新
如果需要重复使用汇总结果,可以先创建一个独立的汇总查询:
- 创建查询并输入以下SQL(可命名为
qry_FirstTableSum):
SELECT ID, SUM(Number) AS TotalNumber FROM First_table GROUP BY ID;
- 再执行更新查询关联这个汇总查询:
UPDATE Second_table INNER JOIN qry_FirstTableSum ON Second_table.ID = qry_FirstTableSum.ID SET Second_table.[SUM] = qry_FirstTableSum.TotalNumber;
额外提示:确保两张表的ID字段数据类型完全一致(比如都是整数型),否则可能出现关联匹配异常。
内容的提问来源于stack exchange,提问作者Sad_Engineer
相关产品推荐
相关产品推荐

