当前位置: 代码迷 >> Oracle管理 >> ==== oracle奇怪现象,一个简略的update语句不能执行。 ====
  详细解决方案

==== oracle奇怪现象,一个简略的update语句不能执行。 ====

热度:99   发布时间:2016-04-24 06:12:52.0
==== 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)

试试~~~~:)
  相关解决方案