【问题标题】:IIf(Instr) in SSRS reporting error - Switch cases in SSRS ExpressionSSRS 报告错误中的 IIf(Instr) - SSRS 表达式中的切换案例
【发布时间】:2019-10-16 07:00:57
【问题描述】:

我的报告如下所示:

我的 SSRS 报告形式如下:

我只想要一行总计,不希望显示总百分比行。为此,我想在表达式中添加一个 case/switch 语句:

If Column_grouping contains "percent" then show "%value" 
If column_grouping does not contain "percent" then show "total"

我的SSRS表达式如下:

​​​​​​​=Switch
(Fields!Column_Grouping.Value like "*percent*", Fields!Total_value_Count_pct.Value,
Fields!Column_Grouping.Value not like "%percent%",Sum(Fields!Total_value_Count.Value))

显然这个表述是错误的。有什么帮助解决这个问题吗?!

【问题讨论】:

  • 您的一个字符串使用%,另一个使用*,这是有意的吗?此外,一个返回值,另一个是聚合;这与您报告中的分组相匹配吗?您会聚合一列而不是另一列,这似乎很奇怪。另外,您是否标记了 SSRS 2008 和 2012?您真正使用的是哪个?两者有很大的不同。#
  • 哎呀。我添加的语句包含我尝试过的所有组合。这是不对的。我需要帮助来解决这个问题。也请刷新,问题稍作编辑
  • @Larnu 我正在使用 2008。2012 标记已删除
  • 星号 *应该用于 SSRS 中的 LIKE。

标签: sql-server reporting-services ssrs-2008 rdlc


【解决方案1】:

我认为您可以稍微简化一下表达式,只需使用 IIF 语句即可。 SWITCH 最好与超过 2 个表达式一起使用来评估。此外,您应该能够使用问题标题中指出的InStr 或Contains。我认为以下表达式应该有效。

= IIF(Fields!Column_Grouping.Value.Contains("percent"), 
      Fields!Total_value_Count_pct.Value, Fields!Total_value_Count.Value)

有关InStr 工作原理的更详细说明,请参阅this answer。包含将简单地检查字符串是否出现在您正在使用它的字段中。

【讨论】:

    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    相关资源
    最近更新 更多