sqlserver竖表转横表备忘


select
* from EDUSTATDATA where 指标类别='小学教育资源' and (指标='学校数' or 指标='学龄人口数' ) and 时间='2016年' and 地区代码 in(SELECT [SYS_FLD_CLASS_CODE] FROM [LNEDU].[dbo].[CYFD_CLS2_NEW] where SYS_FLD_CLASS_CODE like 'xj06%' and (SYS_FLD_CLASS_GRADE=1 or SYS_FLD_CLASS_GRADE=2))

转表:

select 地区代码,地区,sum(case 指标 when '学校数' then 数值 else 0 end) as 学校数,sum(case 指标 when '学龄人口数' then 数值 else 0 end) as 学龄人口数 from EDUSTATDATA where 指标类别='小学教育资源' and 时间='2016年' and 地区代码 in(SELECT [SYS_FLD_CLASS_CODE] FROM [LNEDU].[dbo].[CYFD_CLS2_NEW] where SYS_FLD_CLASS_CODE like 'xj06%' and (SYS_FLD_CLASS_GRADE=1 or SYS_FLD_CLASS_GRADE=2)) group by 地区代码,地区 order by 地区代码

select * from [QMGBDATA] 

转表:

select * from [QMGBDATA]   as C PIVOT(max(数值) FOR [时间] IN([2012年],[2013年],[2014年],[2015年],[2016年])) AS T where (学校标识码='2121000001' or 学校名称 = '2121000001')  and 指标 in ('教学班数','在校学生数','专任教师','生师比','生均图书','在校学生巩固率','生均固定资产总值') and 学校标识码 in (SELECT [学校标识码]  FROM [LNEDU].[dbo].[SCHOOLINFO_2010] where 学校类别='小学' and 地区代码 like 'xj06%')

 

posted @ 2018-07-23 14:51  喵~喵  阅读(2516)  评论(0编辑  收藏  举报