表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中不能这么用?

解决方案 »

  1.   

    搞的这么复杂干嘛,分两步完成不行吗?
    如果对执行效率要不不高,建议你分两步简单的sql语句执行,一步查询最大值,一步更新
      

  2.   

    ACCESS中这样用IIF(ISNULL(a.mm),0,a.mm)
      

  3.   


    update 表B, A
    set 表B.数量=A.mm
    from 表B, (select 名字, max(数量) as mm from 表A group by 名字) A
    where 表B.名字=A.名字
      

  4.   

    你原来的语句本身就有语法错误
    1. group by 表A
    2. access里,多表更新用:update A, B set A.a=B.a where A.b=B.b这种形式