SQL Server 2005 PIVOT 用法示例

php中文网
发布: 2016-06-07 16:21:18
原创
1065人浏览过

最近学习 SQL 2005的新特性,可能很多人都知道了,我反应比较慢,过两天都2010年了,才开始学2005.总结一下: 表如下: create table tb(ID varchar(50),CName varchar(50),Amount money,ActionDate datetime) insert into tb values('001','a',2000.00,'200

   最近学习 sql 2005的新特性,可能很多人都知道了,,我反应比较慢,过两天都2010年了,才开始学2005.总结一下:

  表如下:

  create table tb(ID varchar(50),CName varchar(50),Amount money,ActionDate datetime)

  insert into tb values('001','a',2000.00,'2008-02-28')

  insert into tb values('001','a',1560.00,'2008-03-28')

  insert into tb values('001','a',2040.00,'2008-01-28')

  insert into tb values('001','a',1003.00,'2008-04-28')

  insert into tb values('101','b',3100.00,'2008-03-28')

  insert into tb values('101','b',4040.00,'2008-01-28')

  insert into tb values('101','b',5003.00,'2008-04-28')

  insert into tb values('101','b',2400.00,'2008-02-28')

  insert into tb values('001','a',15000.00,'2007-12-21')

  insert into tb values('101','b',22400.00,'2007-12-21')

  ---------要将数据转换成如下:

  ID CName 2007-12 2008-01 2008-02 2008-03 2008-04

  001 a 15000.00 2040.00 2000.00 1560.00 1003.00

  101 b 22400.00 4040.00 2400.00 3100.00 5003.00

  实现步骤如下:

  -----

  select ID,CName,sum(amount) as amount,left(convert(varchar(20),Actiondate,120),7) as Actiondate

笔魂AI
笔魂AI

笔魂AI绘画-在线AI绘画、AI画图、AI设计工具软件

笔魂AI 403
查看详情 笔魂AI

  into #tmp

  from tb

  group by ID,CName,left(convert(varchar(20),Actiondate,120),7)

  declare @sql varchar(max), @sqlAll nvarchar(max)

  select @sql=''

  select @sql=@sql+'['+Actiondate+'],'

  from #tmp group by Actiondate

  select @sql=left(@sql,len(@sql)-1)

  print @sql

  select @sqlAll='

  select * from #tmp s

  pivot

  (sum(amount)

  for Actiondate in ('+@sql+')

  ) as P order by ID,CName '

  print @sqlAll

  ------Step4

  exec sp_executesql @sqlAll

  drop table #tmp

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号