1、简单交叉报表示例:
DECLARE @t TABLE(Year int,Quarter int,Amount decimal(10,1))
INSERT @t SELECT 1990, 1, 1.1
UNION ALL SELECT 1990, 2, 1.2
UNION ALL SELECT 1990, 3, 1.3
UNION ALL SELECT 1990, 4, 1.4
UNION ALL SELECT 1991, 1, 2.1
UNION ALL SELECT 1991, 2, 2.2
UNION ALL SELECT 1991, 3, 2.3
UNION ALL SELECT 1991, 4, 2.4
--查询处理
SELECT Year,
Q1=SUM(CASE Quarter WHEN 1 THEN Amount END),
Q2=SUM(CASE Quarter WHEN 2 THEN Amount END),
Q3=SUM(CASE Quarter WHEN 3 THEN Amount END),
Q4=SUM(CASE Quarter WHEN 4 THEN Amount END)
FROM @t
GROUP BY Year
/*--结果
Year Q1 Q2 Q3 Q4
--------- ------------------------------
1990 1.1 1.2 1.3 1.4
1991 2.1 2.2 2.3 2.4
--*/
2、动态交叉报表示例
CREATE TABLE tb(Year int,Quarter int,Quantity decimal(10,1),Price decimal(10,2))
INSERT tb SELECT 1990, 1, 1.1, 2.5
UNION ALL SELECT 1990, 1, 1.2, 3.0
UNION ALL SELECT 1990, 2, 1.2, 3.0
UNION ALL SELECT 1990, 1, 1.3, 3.5
UNION ALL SELECT 1990, 2, 1.4, 4.0
UNION ALL SELECT 1991, 1, 2.1, 4.5
UNION ALL SELECT 1991, 2, 2.1, 4.5
UNION ALL SELECT 1991, 2, 2.2, 5.0
UNION ALL SELECT 1991, 1, 2.3, 5.5
UNION ALL SELECT 1991, 1, 2.4, 6.0
--查询处理
DECLARE @s nvarchar(4000)
--交叉报表处理代码头
SET @s='SELECT Year'
--生成列记录水平显示的处理代码拼接
SELECT @s=@s
+','+QUOTENAME(N'Q'+CAST(Quarter as varchar)+N'_Amount')
+N'=SUM(CASE Quarter WHEN '+CAST(Quarter as varchar)
+N' THEN Quantity END)'
+','+QUOTENAME(N'Q'+CAST(Quarter as varchar)+N'_Price')
+N'=CAST(AVG(CASE Quarter WHEN '+CAST(Quarter as varchar)
+N' THEN Price END)AS DECIMAL(10,2))'
+','+QUOTENAME(N'Q'+CAST(Quarter as varchar)+N'_Money')
+N'=CAST(SUM(CASE Quarter WHEN '+CAST(Quarter as varchar)
+N' THEN Quantity*Price END)AS DECIMAL(10,2))'
FROM tb
GROUP BY Quarter
--拼接交叉报表处理尾部,并且执行拼接后的动态SQL语句
EXEC(@s+N'
FROM tb
GROUP BY Year')
/*--结果
Year Q1_Amount Q1_Price Q1_Money Q2_Amount Q2_Price Q2_Money
------- ----------------- --------------- ----------------- ----------------- -------------- ----------------
1990 3.6 3.00 10.90 2.6 3.50 9.20
1991 6.8 5.33 36.50 4.3 4.75 20.45
--*/
分享到:
相关推荐
RDLC交叉报表是其中一种特殊类型的报表,它能够在一个单一的视图中显示多维度的数据,例如按行和列交叉排列的数据,类似Excel中的数据透视表。 交叉报表的核心在于它的行列结构,允许用户根据多个字段进行分组和...
抛砖引玉吧,powerbuilder代码,提取动态交叉报表动态标题名和动态列
有必要先阅读我先前发布的《SpringMVC与iReport(JasperReports) 5.6整合开发实例》这篇博文,只有熟悉了SpringMVC与iReport的整合基础之后,才能更容易上手本示例教程,因为本示例的重点在于iReport报表模板的设计。
在“endo_Cross.gif”这个文件中,很可能是展示了ReportMachine 创建的一个实际交叉报表示例,通过图形化的方式展示了学生成绩数据。这种图表通常包含颜色编码、图表元素和交互式功能,用户可以通过点击或悬停来探索...
“crosstab20.mdb”可能是一个特定版本或者主题的交叉报表数据库,而“CrossTab.mdb”可能是基础的或通用的交叉报表示例。每个数据库可能有自己的数据源、报表布局和交互逻辑,用户可以通过下载并运行这些文件来体验...
交叉报表(Cross-Tab Report)是其中一种特殊类型的报表,它允许用户以行列交错的方式查看数据,从而更容易发现模式和趋势。在商业智能和数据分析领域,交叉报表尤其受欢迎,因为它们能够有效地处理多维数据。 "asp...
### iReport交叉报表自定义排序 #### 背景与问题描述 在处理复杂的报表设计时,特别是使用iReport工具创建交叉报表(Crosstab)的过程中,常常会遇到需要对数据进行特定排序的需求。默认情况下,交叉报表中的数据...
使用ireport打开此文件,可以查看和编辑报表的完整结构,进一步学习和修改这个交叉报表示例。 6. **集成与部署:** 设计完成后,ireport会生成一个jrxml文件,这是报表的XML源代码,可以被JasperReports库解析并...
1. **RDLC-MailLabel(多列报表).rar**:这是一个多行多列交叉报表示例,适用于打印标签或发票等需要多列布局的情况。它演示了如何在有限的空间内排列大量信息,以及如何调整单元格大小以适应不同数据长度。 2. **...
为了更好地理解交叉报表的创建过程,我们首先来看一个简单的SQL查询示例: ```sql CREATE VIEW test AS SELECT '第一次' AS t, 5 AS price, 6 AS iquantity, 'A' AS other UNION ALL SELECT '第二次', 5, 6, 'B' ...
SQL SERVER 2000不支持TRANSFORM...PIVOT语句,所以在MDB中的交叉查询语句拷到ADP中是无法运行的,在SQL SERVER的联机帮助中有如何设计交叉报表的示例,但它生成的列标题是固定的。 <P><P>本示例演示了如何生成动态列...
- 示例代码如下: ```csharp private DataSet BindRpt() { DataSet ds = new DataSet(); try { using (SqlConnection con = new SqlConnection("DataSource=(local);IntegratedSecurity=SSPI;InitialCatalog...
交叉报表是一种特殊的报表格式,主要用于展示数据的行列交叉分析,它可以清晰地呈现多维度的数据集。在IT领域,尤其是在数据分析和报表设计时,交叉报表是非常重要的工具。此压缩包文件包含有关“交叉表示例”的示例...
1. "SpingMVC IReport多数据源交叉报表示例.md" - 这个文件可能与Spring MVC框架和IReport工具的使用有关,通常用于创建复杂的报表,尤其是涉及多个数据源的交叉报表。Spring MVC是Spring框架的一部分,常用于构建...
中国式报表通常包含大量复杂的数据处理和格式化需求,如合并单元格、行列交叉计算、多级标题等。用友华表的CELL插件通过强大的计算引擎和灵活的布局管理,有效应对这些挑战,使得复杂的报表设计变得简单易行。 三、...
xsl-fo实现交叉报表,下面又是树型纬度,以po做示例。
- 学习如何使用水晶报表的高级功能,如交叉表、图表、子报表和自定义函数。 - 探索报表的打印和导出选项,如PDF、Excel或HTML格式。 - 熟悉水晶报表的水晶报表设计器,以直观的方式创建和编辑报表布局。 总结来...
你可以设计各种类型的报表,如表格、图表、子报表、交叉表等。报表元素可以通过拖放进行布局,同时可以设置格式、条件表达式和计算公式。报表可以包含多个节,如页眉、页脚、主体等,每个节都可以有独立的数据绑定和...