2011-03-11 181 views
4

我有一个查询将返回任意数量的结果集,所有结果集都具有相同的列 - 即一个用于Manager,然后一个Manager负责管理每个员工。返回多个结果集的查询

在Mgmt Studio中运行SQL工作正常 - 我的'master'和'details'表已成功呈现。但是,如果我只是在SSRS报告向导的数据集查询中输入相同的SQL,则只会报告第一个结果集。

如何让我的一个Master +所有Details结果集在一个报表中呈现为单独的表格?关键是查询会生成一个任意个结果集。

回答

7

不幸的是,从2008 documentation

...一个结果从关系数据库中,这可以导致从正在运行的数据库命令,存储过程,或用户定义的函数设定。 如果通过单个查询检索多个结果集,则只处理第一个结果集,并忽略所有其他结果集。

因此,我担心你只能使用更复杂的选项。我建议之一:

  • 返回所有的结果集UNION ALLed成一个大的结果集,用一个额外的列指示哪些经理/员工的结果的每个部分是或
  • 创建“主“报告和附带代码,显示您报告的每位经理/员工的子报告。该子报表将使用您的存储过程的版本,该版本一次呈现一个人的报告结果。

后者可能是更清洁的方法。

1

您可能想要根据参数分支结果。并允许用户根据该参数切换结果。