SSRS查询中多值参数的错误

时间:2015-11-02 12:01:03

标签: sql tsql reporting-services parameters ssrs-2012

当我的参数有多个值时,我收到以下错误:

  

isnull函数需要2个参数。

我使用以下查询:

(ISNULL (@Country, N'1') = N'1'
OR Contract.Country IN (@Country)) 

AND (ISNULL(@Season, N'1') = N'1'
OR Contract.Season IN (@Season))

如果参数只有一个值,则此方法有效。

3 个答案:

答案 0 :(得分:0)

尝试在以下内容中使用CASE

CASE WHEN @Country IS NULL THEN N'1' ELSE @Country END = N'1' 
OR Contract.Country IN (@Country)) 

或尝试使用COALESCE

(COALESCE(@Country, N'1') = N'1'
OR Contract.Country IN (@Country)) 

AND (COALESCE(@Season, N'1') = N'1'
OR Contract.Season IN (@Season))

答案 1 :(得分:0)

处理数据集的SELECT部分​​中的ISNULL逻辑,并在报告参数属性中,确认两个参数都选中了“允许多个值”和“允许空值”复选框。

  1. 右键单击“参数”列表中的参数以打开“报表参数属性”对话框。
  2. 在“常规”页面中,选中“允许多个值”框。
  3. 在“常规”页面中,选中“允许空值”框。
  4. 更改SELECT列表中的字段以使用ISNULL(@ Country,N'1')

答案 2 :(得分:0)

这实际上比我想象的要容易,我使用了以下查询:

(Contract.Season IN(@Season))并在ssrs中允许参数为空值。

感谢所有回复。