Update prj as f set TotalPrice =(select  e.a from tempPrj  e 
where f.Id =e._Id)此条语句在Sql server中我试过可行的,但是到了Access中就不行了,
我要实现的是:
  第一个表Prj有两个字段:MarkId,TotalPrice ,也有很多记录
  第二个表TempPrj有两个字段:Mark_id,a ,记录比Prj少,
  现在要把TempPrj中的a的值赋到Prj的TotalPrice中去,
条件是Prj.MarkId=TempPrj.Mark_id 请大伙帮忙看看这条语句,或者给出更好的解决方法,谢谢!!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3250/3250952.xml?temp=.175091Access中不允许用where tableA.fieldA = TableB.fieldA 来做update的连接,这是T-sql的语法,必须把t-sql的语法转成Asni的语法,用 join 来做。对查询结果关联,access必须把查询分成两部分,最后把临时表删:
    -------------------------------------------------------------------------
    select fid,sum(sl) as sumsl from aa into bb where bs=1 group by fid;update aa inner join  bb
    on aa.id=bb.fid
    set aa.sl=bb.sumsldrop table bb
      

  2.   

    谢谢,调试过了!
    搞了一整天,原来不是标准语法。把我修改后的语句也拿上来吧:
    update prj inner join TempPrj on Prj.Markid=TempPrj.Mark_id set Prj.TotalPrice=TempPrj.a