返回多个结果集的查询

时间:2011-03-11 08:57:02

标签: sql sql-server tsql reporting-services

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

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

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

2 个答案:

答案 0 :(得分:7)

可悲的是,来自2008 documentation

  

...来自关系数据库的结果集,可以由运行数据库命令,存储过程或用户定义的函数产生。 如果通过单个查询检索到多个结果集,则仅处理第一个结果集,并忽略所有其他结果集。

所以我担心你只能选择更复杂的选择。我建议:

  • 将所有结果集UNION ALLed归为一个大型结果集,并附加一列以指示结果的每个部分所针对的经理/员工,或
  • 创建“主”报告和随附代码,为您报告的每位经理/员工显示子报告。子报表将使用存储过程的一个版本,一次为一个人呈现报表。

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

答案 1 :(得分:1)

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