经常用到的交叉表问题,一般用动态SQL能生成动态列!

爽朗的孙子曰

爽朗的孙子曰

2016-01-29 16:25

经常用到的交叉表问题,一般用动态SQL能生成动态列!,经常用到的交叉表问题,一般用动态SQL能生成动态列!
 

原始表如下格式:
Class     CallDate    CallCount
1     2005-8-8    40
1     2005-8-7    6
2     2005-8-8    77
3     2005-8-9    33
3     2005-8-8    9
3     2005-8-7    21

根据Class的值,按日期分别统计出CallCount1,CallCount2,CallCount3。
当该日期无记录时值为0
要求合并成如下格式:
CallDate  CallCount1  CallCount2  CallCount3
2005-8-9  0       0       33
2005-8-8  40      77      9
2005-8-7  6       0       21


--创建测试环境
Create table  T  (Class varchar(2),CallDate datetime, CallCount int)
insert into T select '1','2005-8-8',40
union all select '1','2005-8-7',6
union all select '2','2005-8-8',77
union all select '3','2005-8-9',33
union all select '3','2005-8-8',9
union all select '3','2005-8-7',21
--动态SQL
declare @s varchar(8000)
set @s='select CallDate '
select @s=@s+',[CallCount'+Class+']=sum(case when Class='''+Class+''' then CallCount else 0 end)'
from T
group by Class
set @s=@s+' from T group by CallDate order by CallDate desc '
exec(@s)

--结果

CallDate                                               CallCount1  CallCount2  CallCount3 
------------------------------------------------------ ----------- ----------- -----------
2005-08-09 00:00:00.000                                0           0           33
2005-08-08 00:00:00.000                                40          77          9
2005-08-07 00:00:00.000                                6           0           21

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)

--删除测试环境

drop table T

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/) 
展开更多 50%)
分享

猜你喜欢

经常用到的交叉表问题,一般用动态SQL能生成动态列!

SQLServer
经常用到的交叉表问题,一般用动态SQL能生成动态列!

sqlserver一个动态交叉表的范例

编程语言 网络编程
sqlserver一个动态交叉表的范例

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server 7.0 一般问题

SQLServer
SQL Server 7.0 一般问题

复杂表单的动态生成与动态验证

ASP
复杂表单的动态生成与动态验证

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

一些工作和学习中经常用到的SQL语句

编程语言 网络编程
一些工作和学习中经常用到的SQL语句

动态生成Flash网页

flash教程
动态生成Flash网页

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《仙乐传说2 拉塔托斯克的骑士》流程攻略(4—终)

《仙乐传说2 拉塔托斯克的骑士》流程攻略(4—终)

在IE中直接连接SQL数据库

在IE中直接连接SQL数据库
下拉加载更多内容 ↓