0

私はテーブルを持っています:

ID   SubID   Cost

 1    NULL     10
 2    NULL     10
 3      3a     10
 3a   NULL     10
 4    NULL     10
 ...

SubID と SUM Costs (この例では Cost 3 と Cost 3a) を持つすべての行をキャッチする必要があります。したがって、次のように返す必要があります。

ID   SubID   Cost

 1    NULL     10
 2    NULL     10
 3      3a     20
 4    NULL     10
 ...

このテーブルに自分で参加する必要があるようです(ON ID = SubID)が、うまくいきません...

4

1 に答える 1

1

親ごとに最大 1 つの子があり、ネストが 1 つだけ深い場合、これは機能します。

SELECT parent.ID, parent.SubID, parent.Cost + COALESCE(child.Cost, 0)
FROM someTable parent
LEFT JOIN someTable child
  ON parent.SubID = child.ID
WHERE parent.ID NOT IN (SELECT SubID from someTable WHERE SubID IS NOT NULL)
于 2012-11-09T16:05:46.280 に答える