如何实现列转行呈现数据

有数据表如下:
CheckMonth Count_SH Count_BJ Count_GZ
2010-04 1570 1350 750
2010-05 1840 1400 850
2010-06 1950 1580 890

如何呈现为:
CityCount 2010-04 2010-05 2010-06
Count_SH 1570 1840 1950
Count_BJ 1350 1400 1580
Count_GZ 750 850 890

 

create table tb(CheckMonth varchar(10) , Count_SH int, Count_BJ int, Count_GZ int)
insert into tb values('2010-04' , 1570 , 1350, 750)
insert into tb values('2010-05' , 1840 , 1400, 850)
insert into tb values('2010-06' , 1950 , 1580, 890)
go

select b.name as CityCount,
 
max(case CheckMonth when '2010-04' then case b.name when 'Count_SH' then Count_SH when 'Count_BJ' then Count_BJ else Count_GZ end else 0 end) '2010-04',
 
max(case CheckMonth when '2010-05' then case b.name when 'Count_SH' then Count_SH when 'Count_BJ' then Count_BJ else Count_GZ end else 0 end) '2010-05',
 
max(case CheckMonth when '2010-06' then case b.name when 'Count_SH' then Count_SH when 'Count_BJ' then Count_BJ else Count_GZ end else 0 end) '2010-06'
from tb,(select distinct name from syscolumns where id = object_id('tb','U') and name <> 'CheckMonth') b
group by b.name

CityCount   
2010-04    2010-05    2010-06
--------------- ------- ------- -------
Count_BJ    1350    1400    1580
Count_GZ   
750    850    890
Count_SH   
1570    1840    1950


http://topic.csdn.net/u/20101112/14/8c7a124b-3ccf-44d6-a091-dc81fac58daa.html?34109

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值