2017-06-22 56 views
0

我有一个使用存储过程的报告,根据参数值的选择可以有三个不同的输出。SSRS - 动态数据集

参数Report Type有以下选项:“日/月/年”。

如果用户选择“日”,则在使用表A和返回,2列1的程序的IF语句,3.

如果用户选择“月”,还有一个IF语句使用表B和返回列4,5,6

年的情况相同。

所以存储过程可以返回可能:

Select column 1, 2, 3 from Table 1 
    Select column 4, 5, 6 from Table 2 
    Select column 7, 8, 9 from Table 3 

正如你所看到的,数据集,我我的报告里面使用这个存储过程创建,我不能“刷新字段”并将其拉在这些字段供我在报告中使用。

如何在报告中使用一个具有不同返回值的存储过程,以便我可以设置字段以显示数据?

回答

1

我认为你最好的办法是让每个案例返回相同的一组列名和类型。如果有一个案例比另一个案例返回的列数少,那么只需用空值填充额外的列。

+0

谢谢你的帮助这样的方式做到这一点。这是有道理的,并感谢帮助 –

0

,你可以在你的SP决定的参数并执行计算

CREATE PROCEDURE dbo.uspGetData @paramValue nvarchar(30) 
AS 

    Select [column 1] as col1, [column 2] as col2, [column 3] as col3 from [Table 1] where @paramValue=N'Day' 
    UNION 
    Select [column 4] as col1, [column 5] as col2, [column 6] as col3 from [Table 2] where @paramValue=N'Month' 
    UNION 
    Select [column 7] as col1, [column 8] as col2, [column 9] as col3 from [Table 3] where @paramValue=N'Year' 
GO