首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sqlserver2008动态行转列有关问题

2012-03-25 
sqlserver2008动态行转列问题数据库的表为:id助产机构年龄1XXX162xxxx1510xx67要求写一条sql语句显示:id、

sqlserver2008动态行转列问题
数据库的表为:  
  id 助产机构 年龄

1 XXX 16

2 xxxx 15

·····

10 xx 67


要求写一条sql语句显示:id、助产机构、 年龄(年龄的值本来是纵向排列的,这里我要求横向排列)如下图:
序号 助产机构 18岁 19岁 20岁 31岁 。。。。。。。。。总计
1  
2
3
。。。。。。。。。。。。。。。。 

查询表MOC_PRENATAL_EXAM
按助产机构,年龄分组,统计每个助产机构在不同年龄的人数


建表语句
create table MOC_PRENATAL_EXAM (
id int,
HOSPITAL_ID varchar(20) ,
MENARCHE int
)
HOSPITAL_ID助产机构 MENARCHE年龄 



[解决办法]

SQL code
declare @sql varchar(8000)set @sql = 'select 助产机构 'select @sql = @sql + ' , sum(case 年龄 when ' + cast(年龄 as varchar) + ' then 1 else 0 end) [' + cast(年龄 as varchar) + '岁]'from (select distinct 年龄 from MOC_PRENATAL_EXAM ) as aset @sql = @sql + ',count(1) 总计 from MOC_PRENATAL_EXAM  group by 助产机构'exec(@sql) 

热点排行