==== oracle奇怪现象,一个简单的update语句不能执行。 ====
update   GC_ZBHLX_MXB 
    set   MXB_ZBHLX=smoney 
 from   ( 
 select    
       MXB_ZBHLX,MXB_BH,   sum(MXB_ZCDYZBHLX)   over(order   by   MXB_ZCDYZBHLX   desc)as   smoney   from   GC_ZBHLX_MXB   rder   by   MXB_ZCDYZBHLX   desc)   
 其中 
 select    
       MXB_ZBHLX,MXB_BH,   sum(MXB_ZCDYZBHLX)   over(order   by   MXB_ZCDYZBHLX   desc)as   smoney   from   GC_ZBHLX_MXB   rder   by   MXB_ZCDYZBHLX   desc 
 执行结果为 
 MXB_ZBHLX   MXB_BH                                    smoney 
 0.00	   EE06AS070MZ01	4109.36 
 14.96	   EE06AS070MZ01	4259.37 
 我写update是想用第三列去更新第一列。   
 请问各位大虾,我该如何写这个update语句?   
------解决方案--------------------UPDATE  
 GC_ZBHLX_MXB A 
 SET MXB_ZBHLX = 
 ( 
 SELECT SUM(MXB_ZCDYZBHLX) FROM GC_ZBHLX_MXB B WHERE A.MXB_BH  = B.MXB_BH  
 ) 
 WHERE EXISTS 
 ( 
 SELECT 1 FROM GC_ZBHLX_MXB C WHERE A.MXB_BH  = C.MXB_BH  
 )   
 试一下.
------解决方案--------------------update GC_ZBHLX_MXB 
 set MXB_ZBHLX= (select sum(MXB_ZCDYZBHLX) over(order by MXB_ZCDYZBHLX desc)as smoney from GC_ZBHLX_MXB rder by MXB_ZCDYZBHLX desc)   
 试试~~~~:)