首页 > 数据库技术 > 详细

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

时间:2016-03-07 19:11:34      阅读:334      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!