2012-11-09 74 views
0

我有一個表:如何捕捉它們中的某些特定行和SUM值?

ID SubID Cost 

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

我需要捕捉與子ID和SUM成本的所有行(在該示例成本3成本3A)。 所以,我需要回到它喜歡:

ID SubID Cost 

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

好像我也來加入這個表就可以了自我(ON ID =子ID),但我不能得到它的工作...

回答

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) 
+0

這根本不會返回任何內容。我認爲'WHERE'子句需要'WHERE parent.ID NOT IN(從#MyTable中的子ID不爲NULL)' – LittleBobbyTables

+0

聽起來正確,更新 – PinnyM

+0

非常感謝,它的工作原理! – Serega