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
分享到:
相关推荐
在编程领域,尤其是在使用C#进行数据处理时,动态交叉表查询是一种常用的技术,它能够帮助我们以矩阵或网格的形式展示数据,使我们能够轻松地分析多维数据集。动态交叉表查询允许开发者根据需求自定义列和行,提供...
通过以上步骤,我们可以看到,在SQL Server中生成交叉表不仅可以利用动态SQL来实现,而且这种方式非常灵活,可以根据不同的需求动态调整查询逻辑。这种方法适用于需要快速响应不同数据透视需求的场景,尤其对于报表...
通过上述步骤,我们可以在Oracle数据库中通过存储过程实现动态构建交叉表的功能。这种方法虽然比较复杂,但在实际应用中非常灵活,可以根据不同的需求动态调整查询逻辑。此外,还可以结合其他高级功能(如条件判断、...
2. 直接编程实现:对于更复杂的需求,可以通过编写程序(如使用VB、C#等语言)来直接与SQL Server交互,动态生成SQL查询语句来实现交叉表功能。例如,文中提供的SQL查询语句,通过JOIN操作和GROUP BY语句实现了交叉...
### SQL Server 中交叉表的使用及遇到的小问题 在 SQL Server 中,交叉表(Pivot Table)是一种将一列中的数据转换为多列的方式,从而实现数据的汇总、分析等功能。这种方式非常适合处理需要进行维度变换的数据场景...
总结来说,"abc.rar"可能是一个具有动态交叉表功能的程序,它允许用户灵活地分析和探索数据,以适应不同的业务需求。要充分利用这个工具,需要了解其内部结构,学习如何配置和操作,以及如何结合具体的数据集进行...
动态交叉表,也被称为Pivot Table,在数据分析领域中是一种强大的工具,用于整理和汇总大量数据。它是Excel、SQL、Python的pandas库等数据分析软件中的一个重要功能,可以帮助用户快速理解和总结复杂的数据集。 1. ...
总结来说,利用水晶报表动态绑定数据源实现动态交叉表的方法,主要步骤包括:1) 在数据库端创建动态生成交叉表的逻辑,如函数和存储过程;2) 利用Push模式动态绑定这些数据源,将数据推送至水晶报表引擎;3) 水晶...
### SQL Server 2000 交叉表实例详解 在SQL Server 2000中,创建交叉表是一项常见的需求,特别是在处理具有多个维度的数据时。例如,在统计各个销售员在全国各省份的客户数量时,我们需要将每个销售员的数据放在一...
### 不定长的SELECT交叉表查询,且不用游标:SQL行列转换技术解析 #### 一、背景介绍 在数据库管理中,数据的组织形式多种多样,有时我们需要将原本存储为行的数据转换成列的形式展示,反之亦然。这种转换在实际...
本篇文章将介绍如何在MySQL中实现动态的行列转换,主要涉及列联表(Cross Tabulation)或交叉表的创建。 列联表是一种统计方法,用于分析两个或更多分类变量之间的关系。在SQL中,我们通常通过聚合函数(如SUM、...
总结,iReport教程旨在帮助用户掌握这款强大的报表设计工具,通过“2010-11-06_ireport图文教程(超详细).doc”、“用iReport制作交叉表(CrossTabs).doc”和“iReport中文详细教程.pdf”这三份文档,你可以逐步了解并...
\n\n三、强化员工技能培训,提升员工技能素质\n\n为了提高员工技能,团队全面完成年度培训计划,包括外培和内培,安排了班组交叉考试和轮岗学习,以增进知识共享。组织了PLC、ITCC、FF现场总线等新技术的培训,建立...
总结来说,双交叉限幅算法是工业炉燃烧控制的重要手段,通过精细调整煤气和空气流量,实现安全、高效的燃烧。它涉及到PID控制器、流量调节阀、热值仪等多个组件,通过偏差系数和空燃比修正因子来确保燃烧过程的动态...
### 总结 行转列是处理数据时经常遇到的需求之一,尤其是在报表制作和数据分析中尤为重要。通过上述例子,我们可以看到如何使用SQL语言实现这一转换,以及动态SQL在这种场景下的应用。理解这些概念和技术可以帮助...
它允许开发者创建复杂的报表,包括多层细节、汇总和交叉表,并提供了丰富的数据连接和格式化选项。在“动态生成水晶报表++动态添加数据原.pdf”文档中,可能详细讲解了如何在运行时动态创建报表结构和填充数据,这...
针对道路平面交叉口的竖向设计,总结分析了常规设计方法优缺点,吸取并集成诸方法的优点,并以这些方法为基础,应用计算机辅助设计(CAD)技术,完成方格网等高线施工图的自动绘制,并通过三维网格表面模型及三维...
水晶报表可以生成各种类型的报表,如表格、图表、交叉表等,并提供了丰富的格式化和分组功能。 2. **动态报表的必要性** 避免报表直接与数据库关联的原因在于,这样可以提高代码的可维护性和适应性。当数据库结构...
4. **交叉表(透视表)**:水晶易表的交叉表功能允许用户多维度分析数据,通过行列的交互,可以快速总结和比较大量数据。这在数据分析和决策制定中非常有用。 5. **参数化报表**:水晶易表支持参数化报表,用户可以...
动态规划的核心在于构建一个填表过程,从基础情况开始,逐步填充表中的值,直到找到最优解。对于信号桥接,我们需要考虑信号强度、路径长度和其他可能的约束,以确定最佳的信号传输方案。 接下来是Human Gene ...