为什么不能在SSRS中的查询参数表达式中使用聚合和查找函数?

use*_*052 1 sql reporting reporting-services

如果用户从多值参数中选择全部,则使用if运行一个查询,如果不是,则使用另一个查询.所以我想我将所选参数与数据集中的行进行比较.但是我收到此错误:

"用于数据集'DataSet2'中参数'DataSet2'的表达式包括聚合或查找函数.聚合和查找函数不能用于查询参数表达式."

这是给出问题的部分:

IIf(Parameters!SomeOptions.Count < COUNTROWS("SOME_LIST"), ….
Run Code Online (Sandbox Code Playgroud)

当然补充COUNTROWS("SOME_LIST")with 15(它返回的值)工作正常.任何人都知道为什么会这样,和/或任何解决方法?

Reg*_*ser 6

这是我在缺少IsSelectAll标志时使用的解决方法:

  1. 添加另一个名为InternalParameter_SomeOptions的内部参数.
  2. 将默认值和可用值设置为与SomeOptions相同的数据集.
  3. 设置你的表达式= IIF(参数SomeOptions.Count <>参数InternalParameter_SomeOptions.Count,什么都没有,加入(参数SomeOptions.Value,!!! "|"))