如何在SQL SERVER中按名称分组Total

moh*_*111 0 sql t-sql sql-server reporting-services

我有这样的表

DECLARE @T Table 
(
  EmployeDesc VARCHAR(20),
  Empname Varchar(50),
  headOffice INT,
  SubOffice INT
);
Run Code Online (Sandbox Code Playgroud)

样本数据

INSERT INTO @T(EmployeDesc, Empname, headOffice, SubOffice) VALUES 
('Sale','Rob',2,3),
('Discount','Rob',6,10),
('Sale','BOB',2,3),
('Discount','BOB',2,3);
Run Code Online (Sandbox Code Playgroud)

我们如何在SQL服务器中实现这一点

EmployeDesc Empname headOffice  SubOffice

Sale        Rob         2          3
Discount    Rob         6         10
  **Rob Total**         8         13
Sale        BOB         2          3
Discount    BOB         2          3
  **BOB Total**         4          6
Run Code Online (Sandbox Code Playgroud)

我们可以使用UNION ALL或运行总计,但有没有其他方法可以做到这一点.

任何人都可以建议我

Gor*_*off 5

你可以使用grouping sets:

select EmployeDesc, Empname,
       sum(headOffice) as headOffice, sum(SubOffice) as SubOffice
from @T
group by grouping sets ( (EmployeDesc, Empname), (EmpName) );
Run Code Online (Sandbox Code Playgroud)