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语句?

解决方案 »

  1.   

    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 
    )试一下.
      

  2.   

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

  3.   

    楼主的写法是SYBASE或者是SQL SERVER的写法,前面两位的写法正确.
      

  4.   

    错误号码是否是:
    ORA-01427: XXXXXXXXXXXXXX?