`
javayestome
  • 浏览: 1038455 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

交叉报表处理实例

阅读更多

两种比较特殊的交叉数据报表处理

--示例数据:
CREATE TABLE tb(ID varchar(10),NGNO char(1),QTY int)
INSERT tb SELECT '200505','A',10
UNION ALL SELECT '200505','B',20
UNION ALL SELECT '200505','C',30
UNION ALL SELECT '200506','B',10
UNION ALL SELECT '200506','C',20
UNION ALL SELECT '200506','D',30
UNION ALL SELECT '200506','E',40
GO

交叉数据报表要求1:
按ID列分组,将NGNO列水平显示为多列,但每列由NGNO的大小顺序决定,而不是由NGNO的值决定,对于示例数据,最终的结果要求如下:

IDcol1col2col3col4
--------------------------------------
200505A(10)B(20)C(30)
200506B(10)C(20)D(30)E(40)

--实现代码
DECLARE@ivarchar(10),@snvarchar(4000)
SELECTTOP1@s='',@I=COUNT(*)FROMtb
GROUPBYID
ORDERBYCOUNT(*)DESC
WHILE@i>0
SELECT@s=N',col'+@i
+N'=ISNULL(MAX(CASEGIDWHEN'+@i
+N'THENQTYEND),'''')'+@s,
@i=@i-1
EXEC(N'SELECTID'+@s+N'
FROM(
SELECTID,QTY=RTRIM(NGNO)+QUOTENAME(QTY,N''()''),
GID=(SELECTCOUNT(DISTINCTNGNO)FROMTBWHEREID=a.IDANDNGNO<=a.NGNO)
FROMtba
)aGROUPBYID')
GO

交叉数据报表要求2:
按ID列分组,将NGNO及QTY列合并显示在一个列中,最终的结果要求如下:

IDValue
---------------------------------------------------------
200505A(10)B(20)C(30)
200506B(10)C(20)D(30)E(40)

(所影响的行数为2行)

--实现处理的函数
CREATEFUNCTIONf_Str(@IDvarchar(10))
RETURNSvarchar(8000)
AS
BEGIN
DECLARE@rvarchar(8000)
SET@r=''
SELECT@r=@r+SPACE(8)+RTRIM(NGNO)+QUOTENAME(QTY,'()')
FROMtb
WHEREID=@ID
RETURN(STUFF(@r,1,8,''))
END
GO

--调用实现查询
SELECTID,Value=dbo.f_Str(ID)FROMtbGROUPBYID
GO

原帖地址

分享到:
评论

相关推荐

    asp.net 交叉报表案例

    在商业智能和数据分析领域,交叉报表尤其受欢迎,因为它们能够有效地处理多维数据。 "asp.net 交叉报表案例"可能涉及到以下几个关键知识点: 1. **数据源**:ASP.NET报表通常与数据库如SQL Server、Oracle或MySQL...

    用PB交叉报表写的用户管理、权限分配

    总的来说,这个系统利用PowerBuilder的交叉报表功能创新性地实现了用户管理和权限分配,提供了一种可视化、易理解的方式来处理这些关键任务。这不仅减少了编码工作,还提高了系统的可维护性和用户体验。对于熟悉PB的...

    UAP培训_890(交叉报表).rar

    7. **实例解析**:通过实际案例,展示如何在用友U8系统中运用交叉报表解决业务问题,提高决策效率。 8. **最佳实践**:分享一些设计和使用交叉报表的最佳实践,提供优化报表性能和用户体验的建议。 通过学习这个UAP...

    ireport交叉报表

    ### iReport交叉报表详解 #### 一、iReport简介 iReport是一款强大的开源报表设计工具,主要用于设计和创建复杂的报表。它支持多种数据源(如JDBC、XML、CSV等),并能生成各种格式的输出文件(PDF、HTML、Excel等...

    用友U8交叉报表教程学习

    ### 三、创建交叉报表实例详解 #### 1. SQL查询基础 为了更好地理解交叉报表的创建过程,我们首先来看一个简单的SQL查询示例: ```sql CREATE VIEW test AS SELECT '第一次' AS t, 5 AS price, 6 AS iquantity, 'A...

    C#方面水晶报表学习实例

    这个“水晶报表实例”压缩包文件,应该包含了具体的示例代码和步骤,可以帮助初学者快速上手,通过实际操作来巩固理论知识。对于遇到的问题,可以通过查阅文档、在线教程或者社区讨论来解决,逐步提升自己的水晶报表...

    birt 交叉报表动态列实例

    1、根据sql自动实现行转列; 2、根据sql自动实现分组; 3、效果图请看下面链接: http://blog.csdn.net/navyliu520/article/details/41206483

    ReportX报表控件VB实例

    使用ReportX,你可以设计各种类型的报表,包括表格、图表、交叉表和自定义布局。它支持多级分组、子报表、动态计算字段等高级特性。在VB中,通过编程方式可以动态修改报表设计,适应不同场景的需求。 7. **报表...

    uniGui处理报表的例子

    本文将详述如何使用uniGui这一强大的开发框架来处理报表,以及如何进行打印操作。 uniGui是一个专为Delphi开发者设计的跨平台UI库,它提供了一套完整的组件集合,用于构建桌面和Web应用程序。在uniGui中处理报表,...

    C# 程序示例开发水晶报表的几个实例代码

    - 学习如何使用水晶报表的高级功能,如交叉表、图表、子报表和自定义函数。 - 探索报表的打印和导出选项,如PDF、Excel或HTML格式。 - 熟悉水晶报表的水晶报表设计器,以直观的方式创建和编辑报表布局。 总结来...

    iReport web报表开发实例

    通过编程方式生成报表实例,然后将其输出到HTTP响应流中。如果使用的是Java EE框架,如Spring MVC,可以创建一个控制器方法来处理报表的生成和下载请求。 九、最佳实践 在实际开发中,应遵循一些最佳实践,如合理...

    vs2005关于水晶报表的实例

    这个实例将帮助你理解和掌握如何在VS2005中有效地使用水晶报表。水晶报表能够处理各种数据源,包括数据库、XML文件和Excel工作簿,生成美观且功能丰富的报表。 一、安装水晶报表 首先,你需要确保你的VS2005已经...

    java+ireport报表开发实例

    Java与iReport报表开发实例详解 Java是一种广泛使用的编程语言,尤其在企业级应用开发中占据主导地位。在处理数据展示和分析时,报表系统是不可或缺的一部分。iReport是一款开源的报表设计工具,专为Java应用程序...

    润乾报表安装与工程实例

    在“润乾报表安装与工程实例”这个压缩包中,我们将会探讨如何安装润乾报表软件,并通过实际的工程案例来学习报表的开发过程。 首先,润乾报表的安装步骤是至关重要的基础环节。安装过程中,我们需要访问润乾官方...

    水晶报表实例——VB.NET2008实现

    【水晶报表实例——VB.NET2008实现】 在IT领域,水晶报表(Crystal Reports)是一种广泛用于生成和展示报表的软件,它允许开发者通过简单的拖放操作来设计复杂的报表,支持多种数据源,包括数据库、Excel表格和文本...

    水晶报表--奇偶行不同颜色显示、长文本列换行、字符串连接、分页功能、交叉表、读取图片

    在本案例中,我们探讨了六项关键功能的实现,这些功能极大地提升了报表的可读性和美观度。 首先,奇偶行不同颜色显示是一项增强报表视觉效果的设计。它通过在奇数行和偶数行应用不同的背景色,使得用户在浏览大量...

    SpingMVC IReport多数据源交叉报表示例

    有必要先阅读我先前发布的《SpringMVC与iReport(JasperReports) 5.6整合开发实例》这篇博文,只有熟悉了SpringMVC与iReport的整合基础之后,才能更容易上手本示例教程,因为本示例的重点在于iReport报表模板的设计。

    如何使用水晶报表向导创建报表源程序实例,C#.net源代码编写,

    通过上述步骤,你不仅能创建一个基本的报表,还可以逐步学习更高级的功能,如子报表、交叉表、图表等,以满足更复杂的数据分析和展示需求。记住,实践是提升技能的最佳途径,所以动手操作并不断尝试,你将逐渐成为一...

    实例125 如何使用水晶报表向导创建报表C#

    本实例将深入探讨如何使用水晶报表向导在C#环境中创建报表。水晶报表允许开发者通过直观的用户界面来设计复杂的报表,包括数据源连接、字段选择、布局设置以及格式调整等步骤。 首先,创建水晶报表的首要任务是建立...

    水晶报表实例 a

    在“水晶报表实例”这个项目中,我们可以预期包含以下内容: 1. 数据源配置:这可能涉及设置与数据库的连接,例如SQL Server、Oracle或MySQL。开发者需要提供正确的连接字符串,以确保报表能正确提取所需的数据。 ...

Global site tag (gtag.js) - Google Analytics