यदि हम केवल 1 स्तर के पदानुक्रम को मानते हैं। यदि कई स्तरों का पदानुक्रम है तो यह अधिक दिलचस्प हो जाता है।
SELECT A.Value+coalesce(B.Value,0) as Value
, A.Position
, A.Relates_to_Position
, A.Type
FROM Table A
LEFT JOIN Table B
on B.Relates_To_Position = A.Position
WHERE A. Relate_to_Position is null
यह जो करता है वह स्वयं शामिल होता है इसलिए यह उसी पंक्ति पर संबंधित रिकॉर्ड रखता है। इसके बाद यह उन सभी रिकॉर्ड्स को संबंधित_to_position में मान के साथ समाप्त कर देता है क्योंकि उन्हें मूल पंक्ति में जोड़ दिया जाएगा।
हम लेफ्ट जॉइन का उपयोग करते हैं क्योंकि सभी रिकॉर्ड्स का संबंधित मूल्य नहीं होगा और हम यह सुनिश्चित करने के लिए कोलेस का उपयोग करते हैं कि नल को जोड़ने का प्रयास नहीं किया गया है। (कोलेस पहला गैर-शून्य मान लेता है)
सुनिश्चित नहीं है कि आपको संबंधित_To_Position की आवश्यकता क्यों है, क्योंकि यह हमेशा शून्य रहेगा ..