您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> ACCESS >> 辅导 >> 正文    
  两个表用Where子句关联,然后更新为何出错 【注册男护士专用博客】          

两个表用Where子句关联,然后更新为何出错

www.nanhushi.com     佚名   不详 

  问题:

  1。两个表用Where子句关联,然后更新为何出错?

  update a set a.fb=b.fb where a.fa=b.fa

  2。共有billlist和B_see两个表。要把B_see中的值写到billlist中

  我把前缀去掉了,也还报错.SQL语句如下

  update BillList set billList.ProdNewprice=B_see.a ,billList.ProdnewMoney=B_see.b,billList.ProdDiscount=B_see.c

  from BillList,B_see

  where billList.Id=B_see.Id

  回答:

  这个问题经常发生在从其他中大型数据库开发者转到用 jet db 4 的access的时候

  access中不允许用where tableA.fieldA = TableB.fieldA 来做update的连接,这是T-sql的语法,在当初教T-sql的时候你们老师应该说过这句语句使用的注意要点吧?

  必须把t-sql的语法转成Asni的语法,用 join 来做。

  UPDATE a INNER JOIN b ON a.fa = b.fa SET a.fb = b.fb;

  问题:

  想达到此目的,如何修改下面的update语句

  update usertabb094 t1 ,(select field_3, sum(field_9) as field_91,sum(field_10 ) as field_101 from usertabb095 group by field_3 ) t2 set t1.field_8=(t1.field_8*t1.field_7+t2.field_101)/(t1.field_7+t2.field_91) where t1.field_1=t2.field_3

  上面的语句运行显示:

  操作必需使用一个可更新的查询

  回答:

  必须拆成2个查询才能运行

  1、 select field_3, sum(field_9) as field_91,sum(field_10 ) as field_101 into [095] from usertabb095 group by field_3

  注意:使用套嵌查询就会出现你说的问题,但是使用临时表没问题

  2、 UPDATE usertabb094 AS t1 INNER JOIN 095 ON t1.field_1=[095].field_3 SET t1.field_8 = (t1.field_8*t1.field_7+[095].field_101)/(t1.field_7+[095].field_91);

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。