码迷,mamicode.com
首页 > 数据库 > 详细

在Microsoft SQL Server 2008中,将一张表的某列字段的值转换为列名称

时间:2016-03-07 19:11:59      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

create table test
(部门 varchar(10),
客户 varchar(10),
费用名称 varchar(10),
金额 int)
 
insert into test values (‘A‘,‘a‘,‘手机费‘,10)
insert into test values (‘A‘,‘a‘,‘办公费‘,11)
insert into test values (‘A‘,‘a‘,‘公交费‘,9)
insert into test values (‘A‘,‘b‘,‘手机费‘,10)
insert into test values (‘A‘,‘b‘,‘办公费‘,10)
insert into test values (‘A‘,‘c‘,‘公交费‘,10)
insert into test values (‘B‘,‘d‘,‘手机费‘,10)
insert into test values (‘B‘,‘d‘,‘办公费‘,11)
insert into test values (‘B‘,‘e‘,‘公交费‘,9)
insert into test values (‘B‘,‘f‘,‘手机费‘,10)
insert into test values (‘B‘,‘f‘,‘办公费‘,10)
insert into test values (‘B‘,‘f‘,‘公交费‘,10) 

select * from test


 

declare @sql varchar(4000)
set @sql = ‘select [部门],[客户]‘

select @sql = @sql + ‘,sum(isnull(case [费用名称] when ‘‘‘+[费用名称]+‘‘‘ then [金额] end,0)) as 
[‘+[费用名称]+‘]‘
from (select distinct [费用名称] from [test]) as a
select @sql = @sql+‘ from [test] group by [部门],[客户]‘


exec(@sql) 

在Microsoft SQL Server 2008中,将一张表的某列字段的值转换为列名称

标签:

原文地址:http://www.cnblogs.com/shujukuzhazha/p/5251133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!