在开发项目过程中经常要用到交叉表,方便用户查看数据,交叉表--就是行转换成列。动态的交叉表就比较少用了。下面的SQL提供了一种思路,希望对需要的人有所帮助。
if object_id('Col_Row') is not null
drop procedure Col_Row
go
create procedure Col_Row
(@table_to_turn varchar(255), --待旋转的表
@key_col varchar(255), --保留的关键字段
@col_know_how varchar(255), --生成列名的字段
@col_to_turn varchar(255), --作为值的字段
@how_to varchar(20)='sum') --生成值的方式 sum min max avg ,etc.
/*
过程作用,根据纵向数据生成新横向结构
Created by Rami
created date 2008-08-29
*/
as
declare @exec varchar(8000)
create table #tmp (col varchar(255))
set @exec='select distinct '+@col_know_how+ ' from '+@table_to_turn
insert into #tmp exec (@exec)
set @exec=''
select @exec=@exec+@how_to+'(case when ['+@col_know_how+']= '''+col+''' then ['+@col_to_turn +'] else null end ) as ['+col+'],'
from #tmp
set @exec=left(@exec,len(@exec)-1)
set @exec='select ['+@key_col+'],'+@exec+' from ['+@table_to_turn+'] group by ['+@key_col+']'
exec(@exec)
go
--exec Col_Row 'empreceive','EmpCode','RpName','RPQty','sum'
分享到:
相关推荐
C#动态交叉表查询
基于动态交叉表的Web多维分析系统设计与实现.pdf..........
用SQL语句实现动态交叉表查询,写交叉表,可以节省很多代码,并且是动态的,应用范围很广。
在Sql Server数据库中利用存储过程实现动态交叉表.pdf
详细介绍了SQL server数据库在存储过程中实现动态交叉表的实现方式和作用。
Jfreechart动态交叉表的生成与应用.pdf.............
范式下的Oracle数据库设计及其动态交叉表的生成.pdf
范式下的Oracle数据库设计及其动态交叉表的生成 (1).pdf
Oracle动态交叉表生成
交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句 交叉表的语法,动态交叉的sql语句交叉表的语法,动态交叉的sql语句
birt API 动态创建交叉表
摘要:VB源码,数据库应用,交叉表查询 VB6.0与SQL2000结合演示的动态交叉表查询方法,测试前请首先附加Database文件中的数据库,然后再运行可执行文件。 数据库的附加方法如下: 1.将目录database下的xs_Data.MDF...
为减少数据冗余,根据规范化理论设计的数据库不能直接输出分类汇总的结果,需要进行...在.NET和SQL Server环境下,探讨了动态交叉表的生成和利用水晶报表动态绑定数据源显示数据的方法,并给出了较为详细的实现过程。
动态交叉表.rar动态交叉表.rar动态交叉表.rar动态交叉表.rar
FastReport交叉表功能,用的Win8.1 + XE5 + FastReport4环境。 Delphi XE5自带的Fastreport不完整,是从网上重新下的。。 主要用到FastReport的 frxCrossObject 控件,很方便。 在设计报表时,直接拖动数据字段就...
交叉表行列实现动态转换
从课程表这一特殊应用出发 ,深入分析课程信息的特点,提出了利用数据交叉表表达、挖掘、筛选出的新信 息,生成基于动态网页的不规则格式报表的方法。
55 实例052 为TextBox控件添加列表选择框 57 2.2 Button控件应用 58 实例053 在Button按钮中显示图标 58 2.3 ComboBox控件应用 59 实例054 将数据表中的字段添加到ComboBox控件 59 实例...