SSRS - 基于参数调用的多个存储过程

时间:2014-07-11 15:38:27

标签: sql sql-server reporting-services nested procedures

我在Microsoft SSRS 2008中遇到此特定问题:

我必须执行一个存储过程,它将返回具有相同列但具有不同格式的数据:

EXEC Main_SP
   @View = .....

IF @View = Yearly,
BEGIN
  EXEC SP_Yearly_Data
END

IF @View = Quarterly,
BEGIN
  EXEC SP_Quarterly_Data
END

IF @View = Monthly,
BEGIN
  EXEC SP_Monthly_Data
END

IF @View = Weekly,
BEGIN
  EXEC SP_Weekly_Data
END

所有4个程序都具有相同的数据结构,即。相同的列,只有分组会有所不同,因此行数也会不同。

这会在SSRS中成功运作吗?

有更好的方法吗?

SSRS报告设计器中的数据集会快速刷新,以便为我提供与所提供的@View参数相关的数据吗?

任何建议都将不胜感激。

请注意,4个内部程序中的每一个都有3-4个参数,都是相同的。

1 个答案:

答案 0 :(得分:0)

您可以在SSRS报告中的SQL查询中使用IF语句。我不明白为什么你的SQL不起作用。

但是,我认为创建一个主存储过程更加清晰,除了其他参数之外还需要@View参数,它会进行条件分支并返回结果。这也允许您在SSRS数据集中将其作为存储过程运行,而不是在其中包含大量IF条件的SQL语句。

当您更改参数值时,您需要重新运行报告,但它将返回正确的数据集,而不是使用缓存的数据集,因为参数的值将会更改。