Om vi bara antar 1 nivå av hierarki. Om flera nivåer av hierarki blir detta mer intressant.
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
Vad detta gör är en självkoppling så att relaterade poster placeras på samma rad. den eliminerar sedan alla dessa poster med värdet i relation_to_position eftersom de kommer att läggas till på en överordnad rad.
vi använder en LEFT-join eftersom inte alla poster kommer att ha ett relaterat värde och vi använder sammansmältning för att säkerställa att null-värden inte försöker läggas till. (coalesce tar det första icke-nullvärdet)
Inte säker på varför du behöver returnera relates_To_Position eftersom den ALLTID kommer att vara null.