当我的参数有多个值,我收到以下错误:在多错误值参数
The isnull function requires 2 argument(s).
我用下面的查询:
(ISNULL (@Country, N'1') = N'1'
OR Contract.Country IN (@Country))
AND (ISNULL(@Season, N'1') = N'1'
OR Contract.Season IN (@Season))
这工作如果参数只是有一个值。
当我的参数有多个值,我收到以下错误:在多错误值参数
The isnull function requires 2 argument(s).
我用下面的查询:
(ISNULL (@Country, N'1') = N'1'
OR Contract.Country IN (@Country))
AND (ISNULL(@Season, N'1') = N'1'
OR Contract.Season IN (@Season))
这工作如果参数只是有一个值。
尝试在以下使用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))
语法似乎有效,我不获取任何错误消息。事情是:我的查询结果现在关闭。它返回的记录包含的值超出了我的参数指定的值。 –
@KipDrordy尝试使用'COALESCE',更新了答案。 –
处理您的数据集的SELECT部分ISNULL逻辑,并在您的报告参数属性,确认这两个参数都有勾选“允许多个值”和“允许空值”复选框。
它实际上是更容易比我本来以为,我用下面的查询:
(合同.Season IN(@Season))并允许ssrs中参数的空值。
感谢您的回复。
你是什么意思:参数有多个值? –
例如,当Country参数包含法国和希腊而不是其中的一个时 –
在这种情况下,您首先需要将其分成两部分。将2个值置于1个变量中并不是一个好主意。你可以为每个国家使用一个表值参数 –