2017-06-22 76 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