樹形結構,從子向父彙總

CREATE TABLE TEST_P(ID INT,NAME VARCHAR2(10),VAL INT,PARENTID INT)
;

INSERT INTO TEST_P
SELECT 1        ,'w1',           0      ,      0    FROM DUAL UNION ALL
SELECT 2        ,'w2',           2      ,      1    FROM DUAL UNION ALL
SELECT 3        ,'w3',           3      ,      1    FROM DUAL UNION ALL
SELECT 4        ,'w4',           4      ,      2    FROM DUAL;

UPDATE TEST_P T1
   SET T1.VAL = (SELECT DECODE(SUM(VAL), NULL, T1.VAL, SUM(VAL))
                   FROM TEST_P T2
                  WHERE T2.ID <> T1.ID
                    AND CONNECT_BY_ISLEAF = 1
                  START WITH T2.ID = T1.ID
                 CONNECT BY PRIOR T2.ID = T2.PARENTID);

commit;


select * from TEST_P;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章