我有一个SSRS报告,它使用的动态SQL Server存储过程只有一个参数,并且工作正常。
我想创建一个报告,每当我运行它时,它会遍历该参数的多个值并创建多个结果,而不是手动执行。
我在Stack Overflow中找到了以下链接,但它们都没有帮助。
我还阅读了一些我可以在SSRS中使用列表的内容,但我不知道如何在我的情况下使用它。
有什么想法吗?
答案 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)
您需要使用数据驱动订阅。我有动态参数的案例,唯一的解决方案是数据驱动的订阅。