SSRS 2012 - 循环一个参数

时间:2018-02-08 02:06:30

标签: sql-server dynamic reporting-services ssrs-2012

我有一个SSRS报告,它使用的动态SQL Server存储过程只有一个参数,并且工作正常。

我想创建一个报告,每当我运行它时,它会遍历该参数的多个值并创建多个结果,而不是手动执行。

我在Stack Overflow中找到了以下链接,但它们都没有帮助。

Link1

Link2

我还阅读了一些我可以在SSRS中使用列表的内容,但我不知道如何在我的情况下使用它。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

这可能不是一个答案,因为你没有提供足够的细节,但我确信这个想法会对你有帮助。

我认为您最好更改存储过程以接受多个值,并在过程中返回多个结果集或组合每个参数值的记录集。

例如,假设您有程序Proc1,它将数字作为参数。

create procedure Proc1 (@aYear int)
as
begin

    select *
    from Orders
    where OrderYear = @aYear

end

现在,您需要做的是将您的过程更改为接受多年(例如以逗号分隔的值)

create procedure Proc1 (@csv_years varchar(100))
as
begin
    -- use some function or techniques to split the @csv_years 
    -- and store it into a temp table #years ([Year] int)

    -- now, join your main data with this #years table
    select #years.[Year], Orders.*
    from Orders
      inner join #years on #years.Year = Orders.OrderYear
end

现在,您将结果返回多年,您可以通过在[年]列上进行分组来在报告中显示

答案 1 :(得分:1)

您需要使用数据驱动订阅。我有动态参数的案例,唯一的解决方案是数据驱动的订阅。