动态交叉表总结

原创 2006年05月25日 14:41:00

declare @sql varchar(8000)
看论坛里讨论动态交叉表这么多贴,小结了一下.
其实创建动态交叉表里是应用了递归的select变量这种概念,递归的select变量可以使用select语句和子查询将一个变量与其自身拼接起来。

一个标准的创建动态交叉表的code我归纳如下:

Declare @sql varchar(8000)

set @sql = 'select columnA,'

select @sql = @sql + 'sum(case columnB when '''+columnB+ '''  then columnC else 0 end) as '''+columnB+ ''','

from (select distinct columnB from Table) as A

select @sql = left(@sql,len(@sql)-1) + ' from Table group by columnA'

exec(@sql)

go

相信这个可以实现绝大部分动态交叉表

Example:

Declare @S Nvarchar(4000)
Set @S=''
Select @S=@S+N',SUM(Case 所属糖厂 When N'''+所属糖厂+N''' Then 实际重量 Else 0 End) As '+所属糖厂
From V_PonderationInfo_Gather Group By 所属糖厂 Order By 所属糖厂
Select @S=N'Select ''总吨位'' As 所属糖厂 '+@S+' From V_PonderationInfo_Gather Group By 所属糖厂'
EXEC(@S)

Declare @S Nvarchar(4000)
Set @S=''
Select @S=@S+N',SUM(Case 所属糖厂 When N'''+所属糖厂+N''' Then 实际重量  Else 0 End) As '+所属糖厂
From V_PonderationInfo_Gather Group By 所属糖厂 Order By 所属糖厂
Select @S=N'Select N''总吨位'' As 所属糖厂 '+@S+N' From V_PonderationInfo_Gather'
EXEC(@S)
GO

SQL动态生成交叉表应用范例

交叉表的应用较为丰富,应用的方式与范围也是十分丰富。
  • qiushuisen
  • qiushuisen
  • 2014年10月17日 07:26
  • 1112

数据结构(13)二叉树的动态链表存储和遍历的实现

参考书籍:数据结构(C语言版)严蔚敏吴伟民编著清华大学出版社 1.动态二叉链表存储即遍历的实现 1.1.动态二叉链表的定义 #include #include #define NULL 0 ...
  • u010366748
  • u010366748
  • 2016年02月29日 15:23
  • 1150

水晶报表中几种交叉表的实现方法

水晶报表中几种交叉表的实现方法 交叉表,顾名思义,就是行和列交叉,用于将行上的数据,作为列指标来呈现。 用一个图直观的说明一下,就是将图1中的数据样式 最终呈现为如图2的效果 实际在使用中...
  • postfxj
  • postfxj
  • 2016年10月05日 09:39
  • 1070

C#动态交叉表查询

  • 2013年07月31日 21:27
  • 309KB
  • 下载

birt API 动态创建交叉表

  • 2011年12月20日 16:13
  • 4KB
  • 下载

mysql交叉表,行列动态转换

工作内容 jbpm6 方向 2014-6-22 18:09 |个人分类:工作内容| jbpm 之前研究的jbpm6全是基于web的外壳,这是皮,可以进一步研究调用jbpm内核的api。 ...
  • merry163
  • merry163
  • 2014年08月22日 10:24
  • 369

ffmpeg动态连接库 交叉编译后的

  • 2016年01月19日 18:48
  • 14.68MB
  • 下载

动态交叉布局

  • 2015年04月22日 16:30
  • 971KB
  • 下载

SQL SERVER交叉查询示例(动态列标题)

  • 2005年12月02日 10:36
  • 89KB
  • 下载

birt 交叉报表动态列实例

  • 2014年11月17日 11:26
  • 36KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态交叉表总结
举报原因:
原因补充:

(最多只允许输入30个字)