如何在报表中对多个结果集进行分组?

时间:2008-11-10 15:13:53

标签: asp.net reporting activereports

我在ASP.NET中使用ActiveReports,但我认为任何类似报告组件的答案都可以。

我有两个结果集要合并并显示在一个报告中,例如:

Table 1:

Name Job              Start End
Jack Some service     1992  1997
Jack Some Sales Exp   1998  2007
Jane Some programming 2000  2003

Table 2:

Name Training
Jack Shiny French Certificate
Jane Crappy database certificate
Jane Some courses in management

报告应该如下:

Jack
  Job History:
    Some Corp, 1992-1997
    Some Sales Exp, 1998-2007
  Training History:
    Shiny French Certificate
Jane
  Job History:
    Some programming, 2000-2003
  Training History:
    Crappy database certificate
    Some courses in management

我应该如何合并这两个表?如何设计布局以在给定示例中实现报告?

更新

正如您可能注意到的那样,我并不是想用一个选择来做到这一点。我有两个数据表作为源,我可以手动合并它们以获得单个数据源。我正在尝试使用分组,但我需要为每个员工分两种组。一个用于工作,一个用于培训。如何使用组或子报表功能绑定此类数据(如果需要,我应该如何处理数据)?

3 个答案:

答案 0 :(得分:2)

使用子报表...创建一个包含两个子报表的主报表。一个用于工作历史的子报告和一个用于培训历史的子报告。主报告将需要一个返回人员列表的查询。然后,对于主报告详细信息中的每个人,在每个子子报表上设置一个参数,该子报表将优化这两个子查询中的查询,以仅列出父报表中显示的当前人员的“作业历史记录”或“培训历史记录”。 / p>

详细演练介绍了如何逐步完成此操作,请访问Data Dynamics网站here。一些概述信息也是here

答案 1 :(得分:1)

通常,您无法在单个SELECT语句中执行此操作。大多数报告工具提供某种“子报告”或“内部”,它们运行在不同的SQL问题上,并从主报告中传递一些参数。您可以使用两个子报告和一个主报告。

答案 2 :(得分:0)

您应该使用“left-join”选择这两个表,在报告中创建一个“GroupHeader / Footer”部分,并将“GroupHeader”部分的“DataField”设置为字段,该字段应该用作分组。

查看来自ActiveReports的样本,他们肯定有一个分组样本。