我有一个存储过程,它返回多个结果集,如下所示
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/