2016-03-08 107 views
0

我有表company。它存儲以下數據:標識,標題,預算,pid(父母標識),總金額。有必要計算公司的子公司的預算+預算。我在列總數中做了。Sum函數只返回一個層級

"SELECT o.id, o.title, o.budget, o.pid, 
(select sum(o1.budget)+o.budget from company o1 where o1.pid=o.id) total 
FROM company o ORDER BY o.id"; 

這個請求總結只在水平以下預算的數額,我需要計算所有下屬公司的預算。

+0

認沽'o.budget'。預算)'以及'總和(o1.budget + o.budget)' –

+0

我不明白它返回什麼 – user3759707

回答

0

你缺少一個GROUP BY,沒有GROUP BY你只會得到您的預算的總和,嘗試這樣的事情:在'總和(01

SELECT o.id, o.title, o.budget, o.pid, 
(select sum(o1.budget)+o.budget from company o1 where o1.pid=o.id) total 
FROM company o 
GROUP BY o.id 
ORDER BY o.id