WITH t AS ( SELECT 100 cd, -1 pcd, null qty FROM dual UNION ALL SELECT 102, 100, 1 FROM dual UNION ALL SELECT 103, 100, 1 FROM dual UNION ALL SELECT 103, 100, 1 FROM dual -- 자료 수정 UNION ALL SELECT 104, 103, 1 FROM dual UNION ALL SELECT 105, 100, 1 FROM dual UNION ALL SELECT 106, 105, 1 FROM dual UNION ALL SELECT 106, 105, 1 FROM dual ) SELECT * FROM (SELECT cd, pcd , SUM(qty) qty FROM t GROUP BY cd, pcd ) START WITH pcd = -1 CONNECT BY PRIOR cd = pcd ;