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或运行总计,但有没有其他方法可以做到这一点.
任何人都可以建议我
你可以使用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)