==== 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)
试试~~~~:)