इससे पूरी रिपोर्ट मिल जाएगी
SELECT t1.DEPARTMENT_ID
, t1.PARENT_DEP_ID
, t1.DEPARTMENT
, Sum(t2.Amount) Amount
FROM TREE_DATA t1
INNER JOIN TREE_DATA t2
ON t1.DEPARTMENT = SUBSTR(t2.DEPARTMENT, 1, LENGTH(t1.DEPARTMENT))
WHERE t1.Amount = 0
GROUP BY t1.DEPARTMENT_ID, t1.PARENT_DEP_ID, t1.DEPARTMENT
UNION ALL
SELECT DEPARTMENT_ID
, PARENT_DEP_ID
, DEPARTMENT
, Amount
FROM TREE_DATA
WHERE Amount > 0
ORDER BY DEPARTMENT
पहली क्वेरी बिना राशि के ओन्स के लिए विभाग के नाम की संरचना को हैक करके रोलिंग योग प्राप्त करती है, दूसरी को लीफ्स मिलती है। t को समान क्रम प्राप्त करने के लिए कोई स्तंभ संयोजन नहीं मिला, लगता है कि पत्ते अव्यवस्थित हैं।
SQLFiddle डेमो
मैंने एक पुनरावर्ती CTE
लिखने का प्रयास किया है , लेकिन समग्र कार्य करना संभव नहीं है, जैसे कि SUM
इसमें।