返回多个结果集的查询

Tam*_*mim 4 sql t-sql sql-server reporting-services

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

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

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

Mat*_*son 7

可悲的是,从2008年的文件:

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

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

  • 将所有结果集UNION ALLed返回到一个大型结果集中,并附加一列以指示结果的每个部分用于哪个经理/员工,或者
  • 创建"主"报告和附带的代码,为您报告的每个经理/员工显示子报告.子报表将使用存储过程的一个版本,一次呈现一个人的报表结果.

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