我有一个存储过程,它返回多个结果集,如下所示

Create StoredProcedure sp_MultipleDataSets
as
begin
SELECT EMPID, ENAME, JOB, SAL, DEPTID FROM EMP -- first result set
SELECT DEPTID, DNAME, LOC FROM DEPT --second result set
end

在BIDS中,在创建新报告时,我为数据集配置了存储过程。它仅使用从第一个结果集返回的列来创建数据集。它不标识第二个结果集。

如何从上述存储过程为两个结果集创建数据集

最佳答案

不幸的是,作为documentation explains here:



(通过this question找到)。

因此,我建议使用以下两种可能性之一:

(1)将过程分为两个独立的过程-一个从EMP返回数据,一个从DEPT返回数据-并将新过程作为两个独立的数据集进行访问。

(2)合并两个单独的查询(带有附加列以指示哪个查询产生了每一行),并适当地过滤或有条件地格式化报表。联合查询可能看起来像这样:

SELECT EMPID ID, ENAME NAME, JOB JOB_LOC, SAL, DEPTID, 'EMP' SOURCE
FROM EMP
UNION ALL
SELECT DEPTID ID, DNAME NAME, LOC JOB_LOC, NULL SAL, DEPTID DEPTID, 'DEPT' SOURCE
FROM DEPT

关于reporting-services - SSRS中来自存储过程的多个数据集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9310736/

10-12 17:18
查看更多