Actualamt-ss.TranAmt 
不能运算变量

解决方案 »

  1.   

    试试:
    update sfmx set Actualamt=Actualamt-(select ss.TranAmt from sfmx sf,(select Feeid,TranAmt from ssmx where payno = 2) ss where sf.feeid(+) =ss.Feeid)
      

  2.   

    请问sf.feeid(+) =ss.Feeid)是什么意思啊?
      

  3.   

    使用(+)了以后,如果出现值为空的情况,则可能会把原来的值修改成空,因为除了字符串连接外,null和任何任何值计算都会得到null的. 这样试一下.
    update sfmx sf set sf.actualamt=sf.actualamt-(select nvl(ss.tranamt,0) from ssmx ss where ss.payno=2 and sf.feeid=ss.feeid)
      

  4.   


    update sfmx sf set Actualamt=
    select Actualamt-nvl(max(ss.TranAmt),0) from ssmx ss where payno = 2 and ss.Feeid =sf.feeid
      

  5.   

    谢谢二位:
    还有一点 比如:
      update sfmx set Actualamt= 200 from ssmx where sfmx.feeid = ssmx.feeid
    这个能这样改吗:
      update sfmx set Actualamt= (select 200 from ssmx where sfmx.feeid = ssmx.feeid)