Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 过滤数据集上的多值参数_Reporting Services_Parameter Passing_Ssrs 2012 - Fatal编程技术网

Reporting services 过滤数据集上的多值参数

Reporting services 过滤数据集上的多值参数,reporting-services,parameter-passing,ssrs-2012,Reporting Services,Parameter Passing,Ssrs 2012,因此,我有一个包含3个选项的多值参数。>250K,2M。 我还有一个由多列组成的表。 . 因为参数是多值的,所以我很难过滤数据集 我需要通过检查过滤数据集,(如果选择>250K,则相应过滤数据集),(如果选择2M,则相应过滤数据集) 我被告知在(>250K条件下)对参数使用联接和拆分,然后执行包含以查看它是否包含任何参数值,但我在编码方面的知识还不足以做到这一点 有什么建议吗?提前谢谢 我以前尝试过下面的方法,但后来我意识到它不起作用,因为参数是多值的 如果要使用多个参数,可以在数据集中使用JO

因此,我有一个包含3个选项的多值参数。>250K,2M。 我还有一个由多列组成的表。 . 因为参数是多值的,所以我很难过滤数据集

我需要通过检查过滤数据集,(如果选择>250K,则相应过滤数据集),(如果选择<250K,则相应过滤数据集)和(如果选择>2M,则相应过滤数据集)

我被告知在(>250K条件下)对参数使用联接和拆分,然后执行包含以查看它是否包含任何参数值,但我在编码方面的知识还不足以做到这一点

有什么建议吗?提前谢谢

我以前尝试过下面的方法,但后来我意识到它不起作用,因为参数是多值的


如果要使用多个参数,可以在数据集中使用
JOIN
读取参数值

示例:

如果要在以下示例中给出的数据集中读取
@myparameter
的多个值:

数据集参数

您需要使用
=JOIN(Parameters!mymultiparameter.Value,“,”)
作为表达式来读取CSV格式中的所有选定值

表达

现在@ParameterValues参数将所有选定值作为逗号分隔的值,您可以根据设计要求在数据集代码中使用它们


注意:不必使用逗号,但您可以使用任何您想要分隔值的东西。

您的sql查询应该是什么样子的

Where
(
(0 IN (@Parameter) AND ValueColumn<250000)
OR
(1 IN (@Parameter) AND ValueColumn>=250000)
OR
(2 IN (@Parameter) AND ValueColumn>=2000000)
)
在哪里
(
(0英寸(@参数)和ValueColumn=250000)
或
(2英寸(@参数)和值列>=2000000)
)
一个参数

两个参数

所有参数


我知道你提出这个问题已经有一段时间了,你的思路是正确的,但你需要做的就是在要筛选的字段的表格中添加一个过滤器,使用“in”运算符,在值类型[@Yourparametername]中,方括号和大小写敏感度很重要。还要确保表达式类型正确,在您的情况下,它看起来像是在使用Integer。图像应该会有所帮助。

返回值后,还可以使用charindex或patindex*并查找where子句中的值是索引号为
>0的模式。例如,如果从SSRS返回的字符串是
'01,02,03'
,那么where子句的右(字段,2)
类似于
,这将导致值
'03'
。您将where子句更改为where
patindex('%'+right(field,2)+'%',@returnedstring)>0
,这将为您提供结果。这样,您就不必解析sql代码中的
@returnedstring
参数了。

两个问题:1。是否需要将参数设置为多值?2.是否希望该参数在查询时过滤数据集?是的,该参数必须是多值,在运行报告时,您可以选择多个选项。是的,我还希望参数在查询时过滤数据集。该方法不起作用,因为它是一个多值参数。当您“全选”后,测试它是否正常工作,请参阅附件中的图像。你说的“坏了”到底是什么意思?你好。我感谢您抽出时间为我提供解决方案。我在我的数据集中尝试了这个,但仍然不起作用。它向我提供了一个错误,指定“无法读取数据集的下一个数据行”