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做不到,我也没有尝试过,但我无论如何都会避免。我会抓住任何不在表示层中包含业务逻辑的机会。:)