Sql server 在SQL Reporting Services中,如何根据参数筛选数据集?

Sql server 在SQL Reporting Services中,如何根据参数筛选数据集?,sql-server,reporting-services,reporting,Sql Server,Reporting Services,Reporting,我有一个未过滤的数据集要处理,以便生成一个报告(SQLServer2005BTW) 假设我有一个Name列,我想在我的报告中添加一个参数,以便只选择包含一些字符的名称 你知道如何处理这些过滤器吗 我尝试过这些,但运气不佳: =Fields!Name.Value Like =Parameters!FilterName.Value =Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%" 如果我给出参数“oo”,我希望能够得到名

我有一个未过滤的数据集要处理,以便生成一个报告(SQLServer2005BTW)

假设我有一个Name列,我想在我的报告中添加一个参数,以便只选择包含一些字符的名称

你知道如何处理这些过滤器吗

我尝试过这些,但运气不佳:

=Fields!Name.Value Like =Parameters!FilterName.Value

=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%"
如果我给出参数“oo”,我希望能够得到名称“foo”和“foobar”


编辑:我知道应该在SQL server端进行过滤,但我无法控制提供给我的数据集(Web服务使用无参数方法提供),因此我必须在报表端进行过滤。

首选做法是使用精确匹配

您可以根据查询或替代查询返回的数据集构建多值参数列表,从而确保可以实现精确匹配

以下参考资料可能会很有用


转到数据集的属性,转到筛选选项卡。在“表达式”下拉列表中,单击要按其筛选的字段(名称)。单击操作符并选择“类似”。在“值”框中,单击表达式选择。一个新窗口将打开。转到参数列表,将参数添加到公式中。单击“确定”。

我回答自己的问题时,过滤器表达式实际上是:

=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*"

i、 e.实际上,使用
“*”
而不是
“%”

我建议您将筛选器作为SQL语句的一部分应用,该SQL语句用于返回数据集,而不是尝试在Reporting Services报告中应用筛选器。我认为SQL引擎在处理这些类型的过滤器/查询方面要优化得多。

您的回答让我走上了正确的轨道:)! 可能SQLServer2005的情况有所不同;但以下解决方案对我有效:

=Fields!AppName.Value    Like    ="*" & Parameters!FilterApplication.Value & "*"

谢谢,这个链接让我找到了报告过滤器示例页面,到目前为止我没有找到,这让我找到了正确的答案。我知道这一点,我希望我能够尽快进行过滤,但唉,Web服务不是我的,它的所有者不关心soap膨胀,希望我过滤数据。我宁愿在后端进行过滤。我已经写了一系列关于2005年SSRS基础知识的文章(目前仍在进行中)。有关基本参数,请参阅我在该系列的最新文章(使用参数):