日期:2014-05-17 浏览次数:20622 次
SELECT * FROM
(
SELECT 车间, 费用类别, 金额=SUM(金额)
FROM TB
GROUP BY 车间, 费用类别
) t
PIVOT
(
MAX(金额) FOR 费用类别 IN([生产费], [安全费])
) m
create table tableA (车间 nvarchar(10),费用类别 nvarchar(10),金额 int)
insert into tableA values ('一车间','生产费',2000)
insert into tableA values ('一车间','生产费',1000)
insert into tableA values ('一车间','安全费',2000)
insert into tableA values ('一车间','安全费',1200)
insert into tableA values ('二车间','生产费',2200)
insert into tableA values ('二车间','生产费',1000)
insert into tableA values ('二车间','安全费',5000)
insert into tableA values ('二车间','安全费',1200)
select 车间,
生产费=SUM(case when 费用类别='生产费' then 金额 else 0 end),
安全费=SUM(case when 费用类别='安全费' then 金额 else 0 end)
from tableA
group by 车间
/*
车间 生产费 安全费
二车间 3200 6200
一车间 3000 3200
*/
create table tableA (车间 nvarchar(10),费用类别 nvarchar(10),金额 int)
insert into tableA values ('一车间','生产费',2000)
insert into tableA values ('一车间','生产费',1000)
insert into tableA values ('一车间','安全费',2000)
insert into tableA values ('一车间','安全费',1200)