时间刻度 医院等级 补偿人次 费用总额 可报总额 补偿总额
2012 2级医院 415.00 1164.83 11887.31 84706.70
2012 3级医院 1998.00 16862.68 10074.84 95725.30
2013 2级医院 415.00 11578.83 11887.31 84076.70
2013 3级医院 1998.00 16962.68 15074.84 95725.30
将以上数据转换成下面格式:
医院等级 统计指标 2012年 2013年
2级医院 补偿人次 4159.00 4159.00
2级医院 费用总额 1578.83 1578.83
2级医院 可报总额 1887.31 1887.31
2级医院 补偿总额 8376.70 8376.70
3级医院 补偿人次 1998.00 1998.00
3级医院 费用总额 1962.68 1962.68
3级医院 可报总额 1004.84 1004.84
3级医院 补偿总额 9725.30 9725.30
只有一年数据的时候, 我能实现, 现在几年的实现不了了。。。。 求指点。
------解决方案--------------------
用PIVOT运算符吧
------解决方案--------------------
create table ROWTOCOUNT
(
时间刻度 VARCHAR(10),
医院等级 VARCHAR(20),
补偿人次 FLOAT(8),
费用总额 FLOAT(8),
可报总额 FLOAT(8),
补偿总额 FLOAT(8)
)
INSERT INTO ROWTOCOUNT
SELECT '2012','2级医院' , 415.00,1164.83,11887.31,84706.70
UNION ALL
SELECT '2012','3级医院',1998.00 ,16862.68 ,10074.84 ,95725.30
UNION ALL
SELECT '2013','2级医院',415.00 ,11578.83, 11887.31,84076.70
UNION ALL
SELECT '2013','3级医院',1998.00,16962.68,15074.84 ,95725.30
with #a
as
(
select 时间刻度,医院等级,统计指标='补偿人次',年份=补偿人次
from ROWTOCOUNT
union all
select 时间刻度,医院等级,统计指标='费用总额',年份=费用总额
from ROWTOCOUNT
union all
select 时间刻度,医院等级,统计指标='可报总额',年份=可报总额
from ROWTOCOUNT
union all
select 时间刻度,医院等级,统计指标='补偿总额',年份= 补偿总额
from ROWTOCOUNT
)
select 医院等级,
统计指标,
MAX(case 时间刻度 when '2012' then 年份 end) '2012年',
MAX(case 时间刻度 when '2013' then 年份 end) '2013年'
from #a
group by 医院等级,统计指标
order by 医院等级