我有两个表,其中包含各部门的原始数据和每个部门有多行的收入。我需要每个字段的总和,它的父部门是映射到另一个表中的数据。我有一个较长的版本,适用于个别部门的总结:
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
如果没有家长与部门关联,你会如何分组部门? –
如果没有父母,那么我需要的数据总结方式与我在初始查询中的方式相同,只需通过其自己的部门 –
希望答案能为您工作。 –