表A
编号 名字 数量
001 张三 100
002 张三 80
002 李四 120
表B
编号 名字 数量
001 张三 0
根据表A中的名字,得到最大数量,更新表B中相同名字的数量
数据库是access的 update b set
b.数量=isnull(a.mm,0) from (select max(数量) as mm,名字 group by 表A) a on b.名字=a.名字 这样不行 提示操作符丢失 是否是isnull在access中不能这么用?
编号 名字 数量
001 张三 100
002 张三 80
002 李四 120
表B
编号 名字 数量
001 张三 0
根据表A中的名字,得到最大数量,更新表B中相同名字的数量
数据库是access的 update b set
b.数量=isnull(a.mm,0) from (select max(数量) as mm,名字 group by 表A) a on b.名字=a.名字 这样不行 提示操作符丢失 是否是isnull在access中不能这么用?
如果对执行效率要不不高,建议你分两步简单的sql语句执行,一步查询最大值,一步更新
update 表B, A
set 表B.数量=A.mm
from 表B, (select 名字, max(数量) as mm from 表A group by 名字) A
where 表B.名字=A.名字
1. group by 表A
2. access里,多表更新用:update A, B set A.a=B.a where A.b=B.b这种形式