UPDATE TEST T1
   SET T1.VAL = (SELECT DECODE(SUM(VAL), NULL, T1.VAL, SUM(VAL))
                   FROM TEST T2
                  WHERE T2.ID <> T1.ID
                    AND CONNECT_BY_ISLEAF = 1
                  START WITH T2.ID = T1.ID
                 CONNECT BY PRIOR T2.ID = T2.PARENTID);
把test换成你的表名即可。。

解决方案 »

  1.   

    UPDATE TEST T1
       SET T1.VAL = (SELECT DECODE(SUM(VAL), NULL, T1.VAL, SUM(VAL))
                       FROM TEST T2
                      WHERE T2.ID <> T1.ID
                        AND CONNECT_BY_ISLEAF = 1
                      START WITH T2.ID = T1.ID
                     CONNECT BY PRIOR T2.ID = T2.PARENTID);
    把test换成你的表名即可。。
    顶一个............