交叉表
来源:互联网 发布:java跳转页面链接 编辑:程序博客网 时间:2024/05/11 04:53
下面说一下交叉表的概念
说到交叉表先提一下递归的select变量
递归的select变量可以使用select语句和子查询将一个变量与其自身拼接起来。
举一个例子
select @var=@var +d.column from table1 a
从而将基础表中垂直的列数据改为水平方向的数据。这样就可以替代游标。
下面就是动态交叉表和静态的交叉表的一个比较,动态的交叉表这样就代替了传统的游标。
交叉表
方法1
select f_nUMBER as '学员',
SUM(case f_subject when 'A01' then f_nUM end) as 'A01',
SUM(case f_subject when 'A02' then f_nUM end) as 'A02' ,
SUM(case f_subject when 'A03' then f_nUM end) as 'A03' ,
SUM(case f_subject when 'A04' then f_nUM end) as 'A04' ,
SUM(case f_subject when 'A05' then f_nUM end) as 'A05' ,
SUM(case f_subject when 'A06' then f_nUM end) as 'A06' ,
SUM(case f_subject when 'A07' then f_nUM end) as 'A07' ,
SUM(case f_subject when 'A08' then f_nUM end) as 'A08' ,
SUM(case f_subject when 'A09' then f_nUM end) as 'A09'
from rowdata group by f_nUMBER order by f_nUMBER
方法2
declare @sql nvarchar(2000)
set @sql=''
select @sql=@sql+ 'sum(case F_subject when '''+ a.F_subject +''' then F_Num else 0 end) as '
+a.F_Name+','
from (select distinct top 100 percent F_subject,F_Name from rowdata b JOIN SUBJECT_name c on b.F_subject=c.F_number order by F_subject ) a
set @sql='select f_nUMBER as '+'"学员",'+@sql + 'count(F_Number) as '+'"考试数目"'+
'from rowdata group by F_Number order by F_Number'
print @sql
exec sp_executesql @sql
- 交叉表
- 交叉表
- 交叉表
- 交叉表
- 交叉表
- 交叉表
- 交叉表
- SQL交叉表实例
- 行列转换 交叉表
- SQL交叉表实例
- SQL交叉表实例
- 交叉表的实现
- 一个交叉表
- 交叉表的实现,
- 行列转换 交叉表
- 交叉表使用
- 如何生成交叉表?
- SQL交叉表实例
- 利用spring管理struts
- 热血江湖2。0版自由猎手,基于按键精灵开发
- 【住院记】--那麻木中的一刀:一、前记之11.公考
- 从163的Blog"偷"来主题样式
- The Winners of the 18th Jolt Product Excellence Awards
- 交叉表
- 说下Microsoft word--目录设置
- Eclipse常用快捷键
- C++虚函数和多态学习
- 浅谈PM
- 在微软开发软件的几个重要专业
- 项目管理与项目经理
- 由于WINDOWS和UNIX中回车换行符的表示方法不同而引起的.gz文件的损坏Corrupt GZIP trailer
- asp.net中打开新窗口的多种方法