update main am
set am.cmmt_amt =
(select am.cmmt_amt - nvl(sum(x.cmmt_amt),0) from MAIN x where am.a_key = x.b_key)
where exists (select 1
from AUTOGRADE_MAIN a_m
where a_m.acct_nat_key = am.ult_prt_acct_nat_key)
and exists (select 1
from MAIN x
where am.a_key = x.b_key
and x.A_KEY <> x.B_KEY
AND x.CM <> 0
AND x.FLAG = 'N')
这样的写法对吗?sum那句语句中的select 表别名用的是x,再下面的子查询也用到表别名x? 这行吗?
------解决方案--------------------
下面的x所属的子查询只能关联到main am,而关联不到=后面子查询中的x
所以不影响
------解决方案--------------------
一个在set子句中,一个在where子句中
解析时是分别解析的,没问题的