【问题标题】:How to get the following SRSS Iff Expression Between Two Dates To Work如何在两个工作日期之间获得以下 SSRS Iif 表达式
【发布时间】:2021-12-27 09:18:00
【问题描述】:

我正在努力使以下表达式起作用;有人可以建议吗? 表达式将运行,但所有字段都填充有 #Error 消息。

=iif(Fields!From.Value>="01/09/2021" and Fields!From.Value <= "31/08/2022", "Sept 2021",
 iif(Fields!From.Value>= "01/09/2020" and Fields!From.Value <= "31/08/2021", "Sept 2020", 
 iif(Fields!From.Value >= "01/09/2019" and Fields!From.Value <= "31/08/2020", "Sept 2019", 
 iif(Fields!From.Value >= "01/09/2018" and Fields!From.Value <= "31/08/2019", "Sept 2018",
 iif(Fields!From.Value >= "01/09/2017" and Fields!From.Value <= "31/08/2018","Sept 2017",
 iif(Fields!From.Value >= "01/09/2016" and Fields!From.Value <="31/08/2017","Sept 2016","0"))))))

任何帮助将不胜感激!

【问题讨论】:

  • From 是什么数据类型?

标签: reporting-services reportbuilder3.0 reportbuilder report-builder2.0


【解决方案1】:

假设From 实际上是一个日期而不是字符串,那么你可以这样简化。

="Sept " &
    (YEAR(Fields!From.Value) 
        - IIF(Month(Fields!From.Value) >= 9, 0, 1)
        )

这只是检查月份是否 >=9,然后在 From 字段的年份部分中减去零或 1。然后把"Sept "贴在它前面。这也意味着您不需要长的 IIF 或 SWITCH 语句,它适用于任何年份。

关于你原来的表达方式。如果您需要使用字符串文字来表示日期,那么最好使用明确的格式。 "01/09/2021" 在英国可以解释为“2021 年 9 月 1 日”,在美国可以解释为“2021 年 1 月 9 日”。如果您使用"2021-09-01",则应始终正确解释。

【讨论】:

  • 效果很好!谢谢!
  • 很高兴为您提供帮助。您能否将答案标记为已接受(答案左侧的向上/向下投票按钮下方的复选标记)。这有助于其他人找到类似问题的答案,否则问题将显示为未回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-20
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多