【问题标题】:SSRS Parameter show 1 and 0SSRS 参数显示 1 和 0
【发布时间】:2019-01-15 21:46:33
【问题描述】:

使用 SQL Server 2016 和 SSRS。我可能在这里遗漏了一些简单的东西,但我在报告中有一个字段(称为 Errors),其整数值为 0 或 1。

我在我的 SSRS 报告中添加了一个名为 Errors 的参数,并添加了 3 个选项:

1 = show error
0 = no error
1 or 0 = both

Both 选项不起作用 - 它不返回任何记录。我肯定错过了什么。在可用值中,我有一个名为“两者”的标签。在值上我输入表达式:

= 1 OR 0

我错过了什么?

【问题讨论】:

  • 似乎运行良好。选项不是代码,“1 或 0”!= 0
  • "1 或 0" 看起来很奇怪,我建议将其更改为 "-1" 或 "2"
  • 但是错误字段是一个 INT 并且只能是 0 或 1。我不明白 -1 或 2?如何在 SSRS 中显示两者的记录?
  • 我认为您需要将参数更改为只有 1 和 0 作为选项的多项选择,然后对多项选择参数进行查找过滤.. 抱歉,自从我使用 ssrs 以来已经有一段时间了,但这应该让你开始
  • 你是使用参数过滤已经查询的数据还是在查询中使用参数?

标签: reporting-services


【解决方案1】:

该参数未按您希望的方式工作。

1 or 0 值可能正在评估为文本值。

如果不能在数据中,我的建议是对 both 使用 -1 并将您的参数更改为整数。

如果您在查询中使用该参数,则添加一个 OR 来检查您的两个选择 (-1)。

WHERE (ERROR_FIELD = @ERRORS OR @ERRORS = -1)

这将检查该字段是否与参数匹配或参数是否 = -1。

如果您在数据集或表上使用 FILTER,

=IIF(Fields!ERROR_FIELD.Value = Parameters!ERRORS.Value OR Parameters!ERRORS.Value = -1, 1 , 0)

并将类型设置为整数,值设置为 1。

【讨论】:

  • 谢谢你,但是,正如我在原帖中所说,错误字段已经是一个整数。
  • 您的字段是一个整数,但您的参数不能是等于 1 or 0 的整数 - 它是一个或另一个。表达式=1 or 0 将返回值 TRUE 或 1。由于在使用 BOTH 时您不会获得任何记录,因此它可能是一个文本字段返回不等于 1 或 0 的“TRUE”。
【解决方案2】:

如果有人感兴趣,我可以在 WHERE 中使用 IN:

哪里有错误字段(@Error)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2015-06-27
    相关资源
    最近更新 更多