我有兩個表,其中包含各部門的原始數據和每個部門有多行的收入。我需要每個字段的總和,它的父部門是映射到另一個表中的數據。我有一個較長的版本,適用於個別部門的總結:
SELECT a.Dept, Sum(a.Earnings) as Earnings FROM Source AS a GROUP BY a.Dept;
我一直在努力的是我需要總結每個部門不是由其部門,而是由其父部門,這個映射信息是存儲在一個單獨的表格中。我嘗試了不同的連接,並沒有完全得到我期待的結果。這裏是我寫的一個(不正確的)查詢,它給了我父母部門的列表,但是排除了沒有父部門的部門,並且給出了錯誤的總數:
SELECT r.ParentDept, sum(a.Earnings) AS Earnings, FROM EarningsTable a inner JOIN ParentTable r ON a.Dept = r.Dept group by r.ParentDept;
以下是我想要實現的,提前致謝。SQL:Sum和groupby,groupby在另一個表中的條件
表1:
Dept Earnings 4 1000 4 16767 8 2456 9 2456 10 3456 3 36543
表2(映射表):
Dept ParentDept 4 1 8 1 9 2 10 2 3 3
表3(結果表):
ParentDept Earnings 1 20233 2 5912 3 36543
如果沒有家長與部門關聯,你會如何分組部門? –
如果沒有父母,那麼我需要的數據總結方式與我在初始查詢中的方式相同,只需通過其自己的部門 –
希望答案能爲您工作。 –