select
CASE WHEN grouping(emp.address) = '1' THEN '总计'
WHEN grouping(emp.address) = '0' AND grouping(emp.dep) = '1' THEN emp.address + '小计'
ELSE emp.address
END 住址,
--------------------------------------
CASE WHEN grouping(emp.dep) = '1' THEN ''
WHEN grouping(emp.dep) = '0' AND grouping(emp.sex) = '1' THEN emp.dep + '小计'
ELSE emp.dep
END 部门,
------------------------------------------------------------------
case when emp.sex='1' then '男' when emp.sex='0' then '女' end as 性别,
sum(cast(emp.monthly_pay as int)) as 税前月薪,
sum(emp.monthly_pay *emp.rate_duty) as 纳税金额,
sum(emp.monthly_pay *(1-emp.rate_duty) )as 实际月薪金额
from Employees emp
group by
emp.address,
emp.dep,
emp.sex
with rollup
order by
emp.address desc,
emp.dep desc,
emp.sex desc