【问题标题】:Adding multiple IIF statements SSRS添加多个 IIF 语句 SSRS
【发布时间】:2020-01-16 03:12:20
【问题描述】:

如果基础条件为真,我正在尝试将多个字段相加。

更具体地说,我只想将满足或超过用户设置的参数的字段加在一起。

我觉得这是我最接近的一次。我真的很感激任何帮助!谢谢

=IIF(Fields!TestA.Value >= Parameters!TestA.Value,Fields!TestA.Value,0)
+IIF(Fields!TestB.Value >= Parameters!TestB.Value,Fields!TestB.Value,0)
+IIF(Fields!TestC.Value >= Parameters!TestC.Value,Fields!TestC.Value,0)

这个想法是首先测试该字段是否大于或等于参数,如果它很大,则将其添加到总数中,否则只需将总数添加到 0 并继续。

【问题讨论】:

  • 您的代码似乎没问题。你有什么问题吗?
  • 从您的描述和代码来看,看起来不错,到底是什么问题?
  • 它没有抛出任何错误,它似乎只是将所有内容加在一起,无论是否满足参数。

标签: reporting-services ssrs-2012


【解决方案1】:

如果您的字段或参数是文本/字符串,那么您可能需要使用 INT() 或 CDEC() 将它们转换为 INT 或十进制数。否则,IIF 可能会将比较作为字符串而不是数字比较(例如"2" > "100")。

尝试将您的字段转换为 INT:

=IIF(INT(Fields!TestA.Value) >= INT(Parameters!TestA.Value), Fields!TestA.Value, 0)
+IIF(INT(Fields!TestB.Value) >= INT(Parameters!TestB.Value), Fields!TestB.Value, 0)
+IIF(INT(Fields!TestC.Value) >= INT(Parameters!TestC.Value), Fields!TestC.Value, 0)

【讨论】:

    【解决方案2】:

    如果我理解你的问题是正确的, 您希望为字段 A、字段 B 和字段 C 设置值

    所以对于字段 A,您的条件应该是

    =IIF(Fields!TestA.Value >= Parameters!TestA.Value,Fields!TestA.Value,0)
    

    对于字段 B 应该是

    =IIF(Fields!TestB.Value >= Parameters!TestB.Value,Fields!TestB.Value,0)
    

    同样适用于 C。

    如果我遗漏了什么或者您想通过检查单个字段的多个条件来设置值,请告诉我?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多