drop table #test
create table #test
(
    id int identity(1,1) primary key,
    bizDate varchar(50),
    type varchar(50),
    qty float
)

insert into #test
select '20110501','A',20.5 union all
select '20110501','B',98 union all
select '20110501','C',100.5 union all
select '20110501','A',32 union all
select '20110501','C',76.8 union all
select '20110502','B',58 union all
select '20110502','A',111 union all
select '20110502','A',51 union all
select '20110502','A',85 union all
select '20110502','B',52 union all
select '20110502','C',43 union all
select '20110503','A',158 union all
select '20110503','C',58 union all
select '20110503','B',28 union all
select '20110503','B',65 union all
select '20110503','A',11 union all
select '20110503','A',25 union all
select '20110503','C',63

declare @sql varchar(8000)
set @sql = 'select type' 
select @sql = @sql + ' , SUM(CASE WHEN bizDate=''' + bizDate + ''' then qty else 0 end) [' + bizDate + ']'
from (select distinct bizDate from #test) as a order by bizDate--此行的SQL用于找出不重复的日期,也就是结果集中所有的日期
set @sql = @sql + ' from #test A group by type'
print @sql
exec(@sql)

--打印出来的完整SQL是:
select type ,
       SUM(CASE WHEN bizDate='20110501' then qty else 0 end) [20110501] ,
       SUM(CASE WHEN bizDate='20110502' then qty else 0 end) [20110502] ,
       SUM(CASE WHEN bizDate='20110503' then qty else 0 end) [20110503]
       from #test A group by type

/*
PS. SQLServer里的中括号作用:
 若表名、字段名、列名等与数据库里的关键字有冲突,则可以给该表名或字段名加上"[]"以识区别。
 上面的例子中是以日期作为列名,也可用"[]"标识
*/

SQLServer 使用变量动态行转列的更多相关文章

  1. 中等难度SQL语句(存储过程,分页,拼接字段、游标,日期类型转换,动态行转列,视图)汇总

    一.创建存储过程 if Exists(select name from sysobjects where NAME = 'sp1LoginUser' and type='P')drop procedu ...

  2. 【转】MySQL存储过程中使用动态行转列

    MySQL存储过程中使用动态行转列 最近做项目关于数据报表处理,然而数据库存储格式和报表展现形式不同,需要进行一下行转列的操作,在做上一个项目的时候也看了一下,但是后来换了读取方式,也就没深入研究这个 ...

  3. MySQL存储过程的动态行转列

    MySQL存储过程中使用动态行转列 最近做项目关于数据报表处理,然而数据库存储格式和报表展现形式不同,需要进行一下行转列的操作,在做上一个项目的时候也看了一下,但是后来换了读取方式,也就没深入研究这个 ...

  4. 今天来学习一下MySQl的 临时表,变量,行转列,预处理的一些相关技术的使用!

    先来简单了解一下MySQL数据库有意思的简介 MySQL这个名字,起源不是很明确.一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上, 而且不管怎样,MySQL AB创始 ...

  5. mybatis 动态行转列

    SELECT user_name , MAX(CASE course WHEN '数学' THEN score END ) 数学, MAX(CASE course WHEN '语文' THEN sco ...

  6. [MSSQL]採用pivot函数实现动态行转列

    环境要求:2005+ 在日常需求中常常会有行转列的事情需求处理.假设不是动态的行,那么我们能够採取case when 罗列处理. 在sql 2005曾经处理动态行或列的时候,通常採用拼接字符串的方法处 ...

  7. MySQL 行转列 -》动态行转列 -》动态行转列带计算

    Pivot Table Using MySQL - A Complete Guide | WebDevZoomhttp://webdevzoom.com/pivot-table-using-mysql ...

  8. 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)

    原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.

  9. 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)

    原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...

随机推荐

  1. 【vue】vue中实现标签页

    前言 tab标签页实现很多, 纯css实现, js实现等, 外加一些特殊动画. vue中实现标签页实现 keep-alive标签和is特性 vue-router中嵌套路由 is特性实现(推荐) 优点: ...

  2. UVA1001 Say Cheese(Dijkstra或Floyd)

    题目链接:UVA1001 题意:在一个巨大奶酪中的A要以最短的时间与B相遇.在奶酪中走一米的距离花费的时间是10s,而奶酪中有许多洞,穿过这些洞的时间是0s.给出A.B以及各个洞的坐标,求最短的时间. ...

  3. 1 Ipython、Jupyter 入门

    为什么使用Python进行数据分析:     1 Python大量的库为数据分析和处理提供了完整的工具集     2 比起R和Matlab等其他主要用于数据分析的编程语言,Python更全能     ...

  4. 实验十二 团队作业8:软件测试与Alpha冲刺 第四天

    项目 内容 这个作业属于哪个课程 老师链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 Always Run! 作业学习目标 (1)掌握软件测试基础技术 (2)学习 ...

  5. JavaSE 学习笔记之异 常(十)

    异 常: 异常:就是不正常.程序在运行时出现的不正常情况.其实就是程序中出现的问题.这个问题按照面向对象思想进行描述,并封装成了对象.因为问题的产生有产生的原因.有问题的名称.有问题的描述等多个属性信 ...

  6. CDOJ 889 Battle for Silver

    Battle for Silver Time Limit: 2999/999MS (Java/Others)     Memory Limit: 65432/65432KB (Java/Others) ...

  7. Android学习之6.0系统执行时权限设置

    今天讲讲工作中遇见的6.0运行时权限处理问题.起因就是设置版本号更新时,在6.0系统会报错,起因就是6.0动态权限设置,由于在google为了安全考虑,对于一些特定权限会征询客户授权,这当然会大大添加 ...

  8. H3C交换机经常使用命令汇总

    H3C交换机经常使用命令 1.查看Linux下查看port状态 root@root:~# netstat -an|grep -E "6002|6003" 2.H3C交换机显示当前配 ...

  9. php debug二三事

    最近php相关项目遇到了一些问题,处理起来让人感觉挺有意思,寥寥记下. 1.php执行后常驻内存里,需要kill掉该进程再重启,才能让修改后的代码生效. 之前有一次组里小伙伴修改了一个长期后台进程运行 ...

  10. CAS 4.0 配置开发手冊

    1    下载 地址http://downloads.jasig.org/ cas-server-4.0.0-release.tar.gz cas-client-3.3.3-release.tar.g ...