SQL 报表制作和整形( 四 )


SELECT COALESCE(Role,'总计') 角色,sum(SAL) 薪水 FROM test.emps group by Role with rollup;

SQL 报表制作和整形

文章插图
 13.计算各种可能的小计
情景:找出不同部门、角色、部门/角色组合的薪水小计 , 同时显示整个员工表的薪水总计 。
SQL 报表制作和整形

文章插图
解决方案:使用 group by 子句的 cube 扩展,以及 grouping 函数(MySQL 不支持,这里使用 SqlServer 演示) 。
select * from (SELECTcase grouping([DeptNo]) when 0 then [DeptNo] else '全部' end as 部门,case grouping([Role]) when 0 then [Role] else '全部' end as 角色,sum(SAL) 薪水总额FROM [yesmro_db].[dbo].[Emps] group by [DeptNo],[Role] with cube ) aorder by 部门,角色......
未完待续

推荐阅读