【问题标题】:set parameter value to 'not equal'将参数值设置为“不等于”
【发布时间】:2018-04-16 14:06:30
【问题描述】:

我有一份显示一些记录的报告。其中一些记录有一个空白字段,因此我尝试设置一个参数以在此字段已完成的记录和此特定字段为空的记录之间切换。

我在 tablix 上使用过滤器来判断一个字段是否等于参数值而不是显示这些记录。

所以,我设置了一个参数并有 2 个可用值。

Open=""

现在我想为closed 设置一个值,它将返回所有没有空白resolved 字段的记录。

当我运行报告时,open 的记录按预期返回,但我不知道如何说“不等于空字符串”来让其他记录返回。

这个可以吗?

【问题讨论】:

  • 我假设您已经尝试过 Operator = <>, Value = ""?
  • 对于open,我正在使用=""。尝试使用<> 表示不相等,但似乎不喜欢它
  • 你能在第二个过滤器中尝试Nothing而不是""吗?您可能需要进入 Expression Builder 来执行此操作 - 单击值旁边的小 fx...
  • @Neal1581 请说明您的评论。你是如何尝试<>的,你得到了什么错误?如果操作正确,它应该可以工作。
  • 我使用<>"" 作为closed 值来表示'不等于空字符串' 但是这不会创建表达式,您只会在值框中看到<>""。当报表运行时,open 显示所有已解析字段为空的记录。选择closed时,所有记录都可见。

标签: sql-server reporting-services ssrs-2012


【解决方案1】:

我很困惑。如果你有一个参数和它的值,大概是:打开和关闭。在针对 SQL Server 的 SQL 查询中,您可以输入您的 Where:

1 = case when @param = 'open' and isnull(resolved,'') = '' then 1 
         when @param = 'closed' and isnull(resolved,'') != '' then 1 else 0 end

【讨论】:

  • 是的,看来这是最好的方法,只是看看是否有使用 tablix 过滤器和参数值的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多