2013-04-02 32 views
0

我需要能夠設置SSRS參數以包含多個值。在SSRS中使用列表參數

在TSQL,我可以有一個where條款,規定:

where Attribute in ('Value1', 'Value', 'Value3') 

我需要的是在SSRS有:

where Attribute in (@Attribute) 

當我收到掛了是如何格式化參數值表達式,使SQL看到它:'Value1', 'Value', 'Value3'

我有一些運氣,使where子句只看第一個值,但我需要它看看所有3.我如何格式化表達式來做到這一點?

我只是讓它接受多個值,並單獨檢查每個值,但我需要下拉列表纔能有組。因此,如果用戶選擇GroupA,則where子句將使用:IN ('Value1', Value2'),如果用戶選擇GroupB,則where子句將爲IN使用不同的列表。

希望這只是正確格式化表達式的問題。

回答

1

那麼,如果你沒有關於組的要求,這不會是一個問題,因爲你所需要的只是讓你的參數成爲一個多值的參數,並且在你的數據集查詢中做WHERE Attribute in (@Attribute)。但考慮到這一要求,我能想到的唯一方法是有兩個多值參數:@Group@Attribute。您需要使@Attribute不可見,並創建一個數據集來填充它。該數據集將是這樣的:

SELECT Attribute 
FROM Attributes 
WHERE Group IN (@Group) 

併爲您的報告數據創建另一個數據集:

SELECT <all your data> 
FROM YourTable 
WHERE Attribute IN (@Attribute) 
+0

我這樣做,它似乎被傳遞正確的值的參數,但報告仍然只是從列表中的第一個值。 – user1873604