试试: 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)
请问sf.feeid(+) =ss.Feeid)是什么意思啊?
使用(+)了以后,如果出现值为空的情况,则可能会把原来的值修改成空,因为除了字符串连接外,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)
update sfmx sf set Actualamt= select Actualamt-nvl(max(ss.TranAmt),0) from ssmx ss where payno = 2 and ss.Feeid =sf.feeid
谢谢二位: 还有一点 比如: 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)
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)
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)
update sfmx sf set Actualamt=
select Actualamt-nvl(max(ss.TranAmt),0) from ssmx ss where payno = 2 and ss.Feeid =sf.feeid
还有一点 比如:
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)