0

我有一张桌子:

ID   SubID   Cost

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

我需要使用 SubID 和 SUM 成本捕获所有行(在此示例中,成本 3 和成本 3a)。所以,我需要像这样返回它:

ID   SubID   Cost

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

好像我必须自己加入这个表(ON ID = SubID),但我无法让它工作......

4

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 回答