ssrs 用户在参数中输入多个值或将其留空
ssrs user typing in multiple values in a parameter or leaving it blank
我正在 SSRS 中创建一个报告,并有一个参数供最终用户搜索帐号。在报告中,该参数默认设置为 null 以显示所有帐户。当参数不为空时,用户应该能够输入单个帐户或以逗号分隔的多个帐户。我的问题是当我尝试输入多个帐户时出现此错误:
"An expression of non-boolean type specified in a context where a condition is expected, near ','."
这是我的 sql 查询:
SELECT * FROM test_db WHERE (AccountNumber IN (@Account)) OR (@Account IS NULL)
@Account 参数的代码是
=IIF(IsNothing(Parameters!Account.Value),Parameters!Account.Value,Split(Parameters!Account.Value,","))
您无需对其进行任何操作。如果您将@Account 参数设置为多值,您可以简单地键入每个条目,然后按 [Enter],没有逗号,只是您需要的值,参数下拉列表的每一行都有一个。
然后您的原始查询将起作用,SSRS 会自动将多值列表转换为逗号分隔列表并将其注入您的 SQL。如果这没有意义,请告诉我,我会用一些图片给出完整的答案。您可能需要将查询更改为
SELECT *
FROM test_db
WHERE AccountNumber IN (@Account)
OR ISNULL(@Account, '' ) = ''
这也会处理空白。所以 blanks/Null 应该 return 一切
我正在 SSRS 中创建一个报告,并有一个参数供最终用户搜索帐号。在报告中,该参数默认设置为 null 以显示所有帐户。当参数不为空时,用户应该能够输入单个帐户或以逗号分隔的多个帐户。我的问题是当我尝试输入多个帐户时出现此错误:
"An expression of non-boolean type specified in a context where a condition is expected, near ','."
这是我的 sql 查询:
SELECT * FROM test_db WHERE (AccountNumber IN (@Account)) OR (@Account IS NULL)
@Account 参数的代码是
=IIF(IsNothing(Parameters!Account.Value),Parameters!Account.Value,Split(Parameters!Account.Value,","))
您无需对其进行任何操作。如果您将@Account 参数设置为多值,您可以简单地键入每个条目,然后按 [Enter],没有逗号,只是您需要的值,参数下拉列表的每一行都有一个。
然后您的原始查询将起作用,SSRS 会自动将多值列表转换为逗号分隔列表并将其注入您的 SQL。如果这没有意义,请告诉我,我会用一些图片给出完整的答案。您可能需要将查询更改为
SELECT *
FROM test_db
WHERE AccountNumber IN (@Account)
OR ISNULL(@Account, '' ) = ''
这也会处理空白。所以 blanks/Null 应该 return 一切