【问题标题】:How to sum the Group totals only?如何仅对集团总数求和?
【发布时间】:2014-03-07 19:53:24
【问题描述】:

我正在尝试仅对组 HourTarget 总数求和。

          7:00     8:00    HourTarget    
Line 1    2715     1008      3224
  A       2307     1008      3224 
  B       408        0       3224
Line 2    2308     2432      2656
  A       2308     2432      2656
Line 3    2318     1622      2800
  A       345      1258      2800
  B       762        0       2800
  C       1211     364       2800

由于 HourTarget 的总和,我试图达到 8680。但我得到 17504。这是因为数据库表中的 HourTarget 记录了这条线上运行的每个产品,但目标与这条线有关,而不是与产品有关。我怎样才能只总结集团总数?

这样的事情不起作用:

=Sum(Max(Fields!HourTarget.Value))

【问题讨论】:

  • 这是 SSRS 2008 而不是 2008R2?
  • 它是 2008R2,很抱歉造成混淆

标签: reporting-services ssrs-2008 ssrs-grouping


【解决方案1】:

由于您使用的是 SSRS 2008R2,因此您可以使用该版本中添加的聚合功能的聚合。

你是在正确的轨道上;您只需在表达式中添加一个 Scope 值。

我正在使用您的数据版本,并构建了一个简单的 tablix:

请注意,我创建了一个名为 Line 的组。

要获取Max HourTarget 列的Sum,请使用以下表达式:

=Sum(Max(Fields!HourTarget.Value,  "Line"))

这为每个 Line 组计算出 Max,然后取其中的 Sum

现在我们有了您需要的值:

在 SSRS 2008R2 之前,没有简单的方法可以做到这一点;通常,我们会在 DataSet 中添加一个额外的列,其中包含要在报告中显示的预聚合值。

【讨论】:

  • 它工作得很好,谢谢。如何将 HourTarget 的总和用于条件格式?当 7:00 的总和大于或等于时,HourTarget 的总和为绿色,否则为红色。我试过这个,但我得到错误,它不在组中。 =IIF(Sum(Fields!HourCount.Value) >= Sum(Max(Fields!HourTarget.Value, "LineID")), "LimeGreen", "Red")
  • 好的,我知道了。如果有人需要,我用过:ReportItems![Text Box name].Value
  • 酷,只是在输入回复。在表格标题级别,您的第一种方法应该没问题(并且在快速测试中似乎对我来说还可以),但您的方法也是一个很好的方法,特别是如果它适合您!
  • 你能合并每个组的 Hour Target 行吗?
【解决方案2】:

( Sum(CDbl(Fields!Field_1.Value)) 正在工作。

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2016-06-05
    • 2022-08-19
    相关资源
    最近更新 更多