Sql 使用select query data MS Access更新特定表列

Sql 使用select query data MS Access更新特定表列,sql,ms-access,Sql,Ms Access,我使用MS Access 2019,有两个表: 表a(标识a,编号a) 表b(id、名称) 此UPDATE语句不起作用: UPDATE table_a SET number_a = (SELECT COUNT(*) FROM table_b WHERE id_b IN (1,3) AND name_b=@name) WHERE id_a=1; 错误 操作必须使用可更新的查询 为什么不捕获值,然后按如下方式分配它 DECLARE @COUNT_B INT SELECT @COUNT_B =

我使用MS Access 2019,有两个表:

  • 表a(标识a,编号a)
  • 表b(id、名称)
UPDATE
语句不起作用:

UPDATE table_a
SET number_a = (SELECT COUNT(*) FROM table_b WHERE id_b IN (1,3) AND name_b=@name) 
WHERE id_a=1;
错误

操作必须使用可更新的查询


为什么不捕获值,然后按如下方式分配它

DECLARE @COUNT_B INT
SELECT @COUNT_B = COUNT(*) FROM table_b WHERE id_b IN (1,3) GROUP BY id_b

UPDATE table_a
SET number_a = @COUNT_B
WHERE id_a=1;


取决于什么是
@name
,它在哪里定义,以及如何用它的值替换它。

这是否回答了您的问题?这不是MS Access的有效语法。
UPDATE table_a 
SET table_a.number_a = DCount("*","table_b","id_b IN (1,3) AND name_b=@name")
WHERE table_a.id_a=1;
UPDATE table_a 
SET table_a.number_a = DCount("*","table_b","id_b IN (1,3) AND name_b=" & @name)
WHERE table_a.id_a=1;