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
これは自己結合であるため、関連するレコードを同じ行に配置します。次に、親行に追加されるため、relate_to_positionに値を持つすべてのレコードを削除します。
すべてのレコードに関連する値があるわけではないため、LEFT結合を使用し、合体を使用してnullが追加されないようにします。 (coalesceは最初のnull以外の値を取ります)
常にnullになるため、relates_To_Positionを返す必要がある理由がわかりません。