我在Oracle中只用了 J,提问时少写了‘J’。
update df_JIEGUO J set J.差电量=df_BD_JM.差电量,J.追补电量=df_BD_JM.追补电度,J.总电量=df_BD_JM.表总电量,J.平电量=df_BD_JM.平电量,J.平电价=df_BD_JM.平电价,J.A相本月表码=df_BD_JM.A相表码,J.A相上月表码=df_BD_JM.A相上月,J.表倍率=df_BD_JM.表倍率 
where J.户号=B.户号 and df_BD_JM.电表类型ID=10 and df_BD_JM.级别=1;

解决方案 »

  1.   

    update语句的格式:
    update tbname set(col1,col2...)=(select col11,col12,... from tb1,tb2 where ...);
      

  2.   

    update df_JIEGUO J set (J.差电量,J.追补电量,J.总电量,J.平电量,J.平电价,J.A相本月表码,J.A相上月表码,J.表倍率)=(select B.差电量,B.追补电度,B.表总电量,B.平电量,B.平电价,B.A相表码,B.A相上月,B.表倍率 
    from df_JIEGUO J,df_BD_JM B) 
    where J.户号=B.户号 and B.电表类型ID=10 and B.级别=1
      

  3.   

    SQL SERVER里的SQL能够这样写么?update TABLE SET ... FROM TABLE1,TABLE2 where ...???!!!能FROM么?!奇怪!
      

  4.   

    update table set (col1,col2,...)=(select col1,....from table1 a,table2 b where ...) where ...;
      

  5.   

    谢谢zhangshunshi了,但你的答案还是有点小问题。应该是:
    update df_JIEGUO J set (J.差电量,J.追补电量,J.总电量,J.平电量,J.平电价,J.A相本月表码,J.A相上月表码,J.表倍率)=(select B.差电量,B.追补电度,B.表总电量,B.平电量,B.平电价,B.A相表码,B.A相上月,B.表倍率 
    from df_JIEGUO J,df_BD_JM B 
    where J.户号=B.户号 and B.电表类型ID=10 and B.级别=1)
    只差一个右括号。
    谢谢大家!