日期:2014-05-17 浏览次数:20668 次
create table tb
(
单位名称 nvarchar(10),
col nvarchar(10),
月份1 int,
月份2 int,
月份3 int
)
insert into tb values('单位一','计划',10,20,30)
insert into tb values('单位一','实际',20,30,40)
insert into tb values('单位一','盈亏',10,10,10)
insert into tb values('单位二','计划',10,20,30)
insert into tb values('单位二','实际',20,30,40)
insert into tb values('单位二','盈亏',10,10,10)
select 单位名称,1,max(case when col = '计划' then 月份1 end) 计划,
max(case when col = '实际' then 月份1 end) 实际,
max(case when col = '盈亏' then 月份1 end) 盈亏
from tb
group by 单位名称
union all
select 单位名称,2,max(case when col = '计划' then 月份2 end) 计划,
max(case when col = '实际' then 月份2 end) 实际,
max(case when col = '盈亏' then 月份2 end) 盈亏
from tb
group by 单位名称
unall all ...
/*
单位名称,,计划,实际,盈亏
单位二,1,10,20,10
单位一,1,10,20,10
单位二,2,20,30,10
单位一,2,20,30,10
警告: 聚合或其他 SET 操作消除了空值。
(4 行受影响)