2016-06-27 116 views
0

在我的SSRS報告中,我傳遞三個參數 第三個參數(它是一個搜索參數)允許空值以及多個值。通過傳遞null值或通過將一個值傳遞給第三個參數來給出結果的報告,但是當我們在第三個參數中傳遞多於1個值時拋出錯誤。顯示沒有通過參數值或通過傳遞SSRS參數中的單個或多個值的記錄

我在數據集中使用下面的查詢來處理這種情況

IF (@Parameter3 = '') 
BEGIN 
    SELECT * 
    FROM [MyTableName] WITH(NOLOCK) 
    WHERE col1 IN (@Parameter1) 
      AND col2 IN (@Parameter2) 
END 
ELSE 
BEGIN 
    SELECT * 
    FROM [MyTableName] WITH(NOLOCK) 
    WHERE col1 IN (@Parameter1) 
      AND col2 IN (@Parameter2) 
      AND col3 IN (@Parameter3) 
END 

這裏參數3用於傳遞空以及多個值。

+0

但是,當我傳遞**參數3中的單**值以及傳遞NULL值時我得到結果但我得到**報告錯誤**當我傳遞**多**值in @Parameter 3 – user2728106

回答

1

@Parameter3應該有一些分離 - 可以使用逗號或任何特殊字符。

例如:如果你已經通過多個值直通@參數3和用逗號分隔數據,那麼你的查詢應該看起來像下面。

IF (@Parameter3 = '') 
BEGIN 
    SELECT * 
    FROM [MyTableName] WITH(NOLOCK) 
    WHERE col1 IN (@Parameter1) 
      AND col2 IN (@Parameter2) 
END 
ELSE 
BEGIN 
    SELECT * 
    FROM [MyTableName] WITH(NOLOCK) 
    WHERE col1 IN (@Parameter1) 
      AND col2 IN (@Parameter2) 
      AND col3 IN ISNULL(@Parameter3,'NULL') 
END 
+0

這是在參數3中傳遞Null值時給出結果,但是當在參數3中傳遞單值或多值時,報告出現錯誤。 – user2728106

+0

而且我的上面的查詢給出了結果,當我傳遞給@ Parameter3的單個值,但是當我傳遞多個值時拋出錯誤。 – user2728106