【问题标题】:SSRS - How to count values in a column that is generated by an expression?SSRS - 如何计算由表达式生成的列中的值?
【发布时间】:2019-04-04 21:49:41
【问题描述】:

在我的 SSRS 报告中,我有一个名为 permit_status 的列。此列具有由表达式生成的值(即它来自自定义代码)。 permit_status 值是逐行计算的。

要求是显示 permit_status 列中显示的不同值的总和,并将此导出到 Excel。这些值是“已批准”“待定”等。我只需要一个单元格显示每个值的总数。

我可以为此报表创建一个使用 Sum(...) 的页脚,例如:

=Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0))

但是,这仅显示报告该页面的“已批准”值的总和,而不是整个报告。 (而且我遗漏了一些东西,因为它不会导出到 Excel。)

将 ReportItems!column_name.Value 加总的最佳方法是什么?

【问题讨论】:

    标签: reporting-services ssrs-tablix


    【解决方案1】:

    在您的矩阵中添加基于 permit_status 的列组(以便每一列包含一个可用的唯一值)。鼠标右键单击您所在行的最左侧字段,然后选择 add total after,将此字段表达式修改为 count(Fields!permit_status.Value)

    【讨论】:

      【解决方案2】:

      据我了解,您想计算“已批准”、“待定”等值的数量。有不同的方法可以实现这一点。在不改变 tablix 结构的情况下,最简单的方法是使用表达式:

      一个单元格:

      ="Approved: " & Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0)) & " / " &
       "Pending: "  & Sum(IIF(ReportItems!permit_status.Value = "Pending", 1, 0))
       'And so on...
      

      或更多单元格:

      'Cell 1
      ="Approved: " & Sum(IIF(ReportItems!permit_status.Value = "Approved", 1, 0))
      'Cell 2
      ="Pending: "  & Sum(IIF(ReportItems!permit_status.Value = "Pending", 1, 0))
      

      【讨论】:

      • 这仅给出报告一页的总数。我需要所有页面的总数。帖子已更新以澄清..
      • 那么你在 tablix/matrix 中的行在错误的范围内。添加一个 tablix/matrix 行,它在上面/下面的组之外。
      【解决方案3】:

      如何添加两个额外的列“已分配”和“待定” 然后对于那些列设置行规则分别如下。

      IIF(ReportItems!permit_status.Value = "Approved", 1, 0)
      IIF(ReportItems!permit_status.Value = "Pending", 1, 0)
      

      然后在数据集的末尾添加 Total,如 here 所述。它会给你想要的结果

      【讨论】:

      • 这可以正确地对具有整数类型的列求和;但是,它似乎不适用于作为表达式的列。我没有为数字以外的列添加总计的选项...
      • 您试一试了吗,因为这 2 个额外的列会在每行 1 或 0 中相加,这对您来说将是整数,它将汇总您的结果。
      • 是的,我做到了。 Add Total 不是一个选项,因为它将其视为表达式而不是 int。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多