如何在 SSRS 中使用多值参数列表过滤列

How to filter a column using multi value parameter list in SSRS

我是 SSRS 的新手。我认为应该非常简单的事情花了我 1 天的时间,但我无法修复它。我只需要以下内容

Select * from table1 where len(username) <= 6
Select * from table1 where len(username) >= 7

我想显示一个包含短用户名和长用户名两个选项的下拉菜单。 当用户名点击短用户名时显示第一个查询结果,当用户点击长用户名时显示第二个查询结果。

到目前为止我所做的是添加了一个包含两个值的参数列表,即短参数列表 = 6 和长参数列表 = 7。然后我添加了两个过滤器。在第一个表达式中= len(NameColumn.value) operator= <= value = @parameter。在第二个表达式中= len(NameColumn.value) operator= >= value = @parameter。请问我该怎么做才能实现它。

我认为在查询中进行筛选比使用 SSRS 筛选器效果更好。试试这个查询。

select * from table1 where (@Parameter = 0 and len(username) <= 6) or (@Parameter = 1 and len(username) >= 7)

你的参数可以这样设置。

您可以在@energ1ser 提到的数据集中进行类似的 FILTER。

您将有一个参数,用户可以在其中选择多头或空头。您可以为其使用不同的值。

对于表达式,您将使用:

=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) 
   OR (Parameters!YourParameter.Value = "Long"  and LEN(FIELDS!USERNAME.VALUE) >= 7), 1, 0)

对于类型,使用 Integer,运算符 = 和值 1

此表达式将每一行计算为 01,然后将其过滤为 1的。

要显示 ALL 条记录,为参数选择全部时添加另一个 OR

=IIF( (Parameters!YourParameter.Value = "Short" and LEN(FIELDS!USERNAME.VALUE) <= 6) 
   OR (Parameters!YourParameter.Value = "Long"  and LEN(FIELDS!USERNAME.VALUE) >= 7) 
   OR (Parameters!YourParameter.Value = "All"), 1, 0)