如何在SSRS的数据区域中引用其他数据集?

时间:2018-09-13 20:32:14

标签: ssrs-2012 reportbuilder3.0

我有3个数据集,希望在1个报告中显示,还有一个控制某些分组的数据集。这三个数据集来自相同的来源,只是不同的WHERE子句位于不同的字段中。

我已经尝试了子报表,但是似乎只有将子报表上传到服务器(?)或在VS中构建这些子报表时,我才能添加子报表,这是解决方案的一部分。当我尝试浏览到报表生成器中的子报表时,对话框要求我Look In: Recent Sites and Servers,并且什么都没有列出。

我尝试将页脚添加到组中并插入新表,并将新表与其他数据集相关联,但是它恢复为包含tablix的数据集。

我的数据示例:

Groupings
company|division|division_id
    a  |  div-a |  1
    a  |  div-b |  2

 Current Items
 item | division  
  ia  |   div-a
  ib  |   div-a
  ic  |   div-b

 New Items
 item  | division
  nia  | div-b
  nib  | div-b

 Ended by Discontinuation Reason
 reason |  division
  bad   |   div-a
  lame  |   div-b
  bad   |   div-a

任何人都可以阐明如何将略微脱节的数据纳入同一报告吗?谢谢。

1 个答案:

答案 0 :(得分:1)

理想情况下,最好只有一个数据集。除了应该使用不同的WHERE子句来进行不同的查询之外,您应该使用INNER JOIN并只有一个查询/数据集。

例如,代替以下内容:

 SELECT 
  Field1
 ,Field2
 FROM Table1
 WHERE Field1 > 5

 SELECT 
  Field1
 ,Field2
 FROM Table1
 WHERE Field1 < 5

 SELECT 
  Field1
 ,Field2
 FROM Table1
 WHERE Field1 = 5

您应该这样做:

 SELECT 
  G5.Field1
 ,G5.Field2
 ,L5.Field1
 ,L5.Field2
 ,E5.Field1
 ,E5.Field2

 FROM Table1
 INNER JOIN G5 
 ON G5.Field1 > 5   
 INNER JOIN L5 
 ON L5.Field1 < 5 
 INNER JOIN E5 
 ON E5.Field1 = 5 

这样,您只有一个数据集。而且,您可以在SSRS表中使用所需的不同字段,因为每个字段都是基于特定条件的。