我有一张桌子:
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),但我不能让它工作......
答案 0 :(得分: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)