Reporting services 如何在Reporting Services中使用多个结果集

Reporting services 如何在Reporting Services中使用多个结果集,reporting-services,reportingservices-2005,ssrs-2008,Reporting Services,Reportingservices 2005,Ssrs 2008,我有一个存储过程,它返回多个与以下类似的结果集: ALTER PROCEDURE sp_XXXX ( XXXXXX ) AS SET NOCOUNT ON SELECT XXXXXXX IF @@ROWCOUNT = 0 SELECT XXXXXXX RETURN 我希望我的报告在有数据的情况下使用第一个结果集,或者在第一个结果集为空的情况下使用第二个结果集。有什么帮助吗?在存储过程“全部联合”中,选择两个结果集。如果需要区分它们,请添加一个表示原

我有一个存储过程,它返回多个与以下类似的结果集:

ALTER PROCEDURE sp_XXXX 
(
    XXXXXX
)
AS
SET NOCOUNT ON

SELECT XXXXXXX    


IF @@ROWCOUNT = 0
    SELECT     XXXXXXX



RETURN
我希望我的报告在有数据的情况下使用第一个结果集,或者在第一个结果集为空的情况下使用第二个结果集。有什么帮助吗?

在存储过程“全部联合”中,选择两个结果集。如果需要区分它们,请添加一个表示原始结果集的派生列

select 'ds1' as dataset, *
from table1
union all
select 'ds2' as dataset, *
from table2
再来一次

将结果集1转储到临时表中,并仅在第二个查询为空时执行该查询

伪代码:

select * into #tempResult 
from table 1

if table1 is empty 

select * from table2
在存储过程“全部联合”中,您的两个结果集。如果需要区分它们,请添加一个表示原始结果集的派生列

select 'ds1' as dataset, *
from table1
union all
select 'ds2' as dataset, *
from table2
再来一次

将结果集1转储到临时表中,并仅在第二个查询为空时执行该查询

伪代码:

select * into #tempResult 
from table 1

if table1 is empty 

select * from table2

谢谢你的回复。使用union all的问题是,我希望select语句仅在第一个语句未返回任何行时运行。您可以将结果集1转储到临时表中,并仅在第二个查询为空时执行该查询。谢谢。是的,我最终在SP中创建了一个临时表变量。我想知道为什么reporting services OOB不支持多个结果集。还有一种方法是,我可以编写一个WebService,使用XML数据源,并在WebService中编写逻辑。很高兴它起作用了。我不会说SSR做不到,我也没有尝试过,但我无论如何都会避免。我会抓住任何不在表示层中包含业务逻辑的机会。:)谢谢你的回复。使用union all的问题是,我希望select语句仅在第一个语句未返回任何行时运行。您可以将结果集1转储到临时表中,并仅在第二个查询为空时执行该查询。谢谢。是的,我最终在SP中创建了一个临时表变量。我想知道为什么reporting services OOB不支持多个结果集。还有一种方法是,我可以编写一个WebService,使用XML数据源,并在WebService中编写逻辑。很高兴它起作用了。我不会说SSR做不到,我也没有尝试过,但我无论如何都会避免。我会抓住任何不在表示层中包含业务逻辑的机会。:)