龙卷风(2007)

SQL2000、Dotnet、Oracle、PowerDesigner

数据库中数据列转行并均分显示。
declare @t table(网元 varchar(20),覆盖类型 varchar(20),占比 float, 排名 int)
insert into @t(网元,覆盖类型,占比,排名)
select '分公司1','军队',0.45,1
union all
select '分公司1','政府',0.22,2
union all
select '分公司1','学校',0.12,3
union all
select '分公司2','社区',0.33,1
union all
select '分公司2','银行',0.22,2
union all
select '分公司2','医院',0.13,3


select * from @t 



(6 行受影响)
网元                   覆盖类型                 占比                     排名
-------------------- -------------------- ---------------------- -----------
分公司1                 军队                   0.45                   1
分公司1                 政府                   0.22                   2
分公司1                 学校                   0.12                   3
分公司2                 社区                   0.33                   1
分公司2                 银行                   0.22                   2
分公司2                 医院                   0.13                   3

(6 行受影响)
希望效果如下:



select 网元,
	[第一名]=max(case when 排名%6=1 then 覆盖类型 else '' end),
	[第一名占比]=sum(case when 排名%6=1 then 占比 else 0 end),
	[第二名]=max(case when 排名%6=2 then 覆盖类型 else '' end),
	[第二名占比]=sum(case when 排名%6=2 then 占比 else 0 end),
	[第三名]=max(case when 排名%6=3 then 覆盖类型 else '' end),
	[第三名占比]=sum(case when 排名%6=3 then 占比 else 0 end),
	[第四名]=max(case when 排名%6=4 then 覆盖类型 else '' end),
	[第四名占比]=sum(case when 排名%6=4 then 占比 else 0 end),
	[第五名]=max(case when 排名%6=5 then 覆盖类型 else '' end),
	[第五名占比]=sum(case when 排名%6=5 then 占比 else 0 end),
	[第六名]=max(case when 排名%6=0 then 覆盖类型 else '' end),
	[第六名占比]=sum(case when 排名%6=0 then 占比 else 0 end)
  from @t
group by 网元






            
阅读更多
个人分类: SQL Server 2005
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

数据库中数据列转行并均分显示。

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭