我在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
我应该如何合并这两个表?如何设计布局以在给定示例中实现报告?
更新
正如您可能注意到的那样,我并不是想用一个选择来做到这一点。我有两个数据表作为源,我可以手动合并它们以获得单个数据源。我正在尝试使用分组,但我需要为每个员工分两种组。一个用于工作,一个用于培训。如何使用组或子报表功能绑定此类数据(如果需要,我应该如何处理数据)?
答案 0 :(得分:2)
使用子报表...创建一个包含两个子报表的主报表。一个用于工作历史的子报告和一个用于培训历史的子报告。主报告将需要一个返回人员列表的查询。然后,对于主报告详细信息中的每个人,在每个子子报表上设置一个参数,该子报表将优化这两个子查询中的查询,以仅列出父报表中显示的当前人员的“作业历史记录”或“培训历史记录”。 / p>
答案 1 :(得分:1)
通常,您无法在单个SELECT语句中执行此操作。大多数报告工具提供某种“子报告”或“内部”,它们运行在不同的SQL问题上,并从主报告中传递一些参数。您可以使用两个子报告和一个主报告。
答案 2 :(得分:0)
您应该使用“left-join”选择这两个表,在报告中创建一个“GroupHeader / Footer”部分,并将“GroupHeader”部分的“DataField”设置为字段,该字段应该用作分组。
查看来自ActiveReports的样本,他们肯定有一个分组样本。