【问题标题】:SSRS - Count grouped by Column AND Row in a TablixSSRS - Tablix 中按列和行分组的计数
【发布时间】:2013-05-07 13:47:10
【问题描述】:

我有一个类似这样的 SSRS tablix:

+----------+-----------+--------+--------+
|  Total   | RowGroup  | Group1 | Group2 |
+----------+-----------+--------+--------+
| Perdiod1 | RowGroup1 | Value  | Value  |
|          | RowGroup2 | Value  | Value  |
| Perdiod2 | RowGroup1 | Value  | Value  |
|          | RowGroup2 | Value  | Value  |
| Perdiod3 | RowGroup1 | Value  | Value  |
|          | RowGroup2 | Value  | Value  |
+----------+-----------+--------+--------+

现在,对于每个时期,我想计算每个组中的计数。当我这样做时:

Count(TableValue.Value, "Perdiod") 

我得到了该期间的总数(对于两个列组)。当我这样做时

Count(TableValue.Value, "ColumnGroup")

我得到所有时期的总数。所以真的,我需要做的是这样的:

Count(TableValue.Value, "TablixRow", "TablixColumn")

这显然不存在。

因此,'Value' 应该是一个 Period 内的组的总计数(因此,在上面给出的示例中,Value 将在每个 Period 中重复两次(每个 RowGroup 一次))

有没有办法在 SSRS 的 tablix 中显示指定列和行组中所有值的计数?

【问题讨论】:

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


    【解决方案1】:

    您只需要将聚合表达式添加到没有指定范围的矩阵详细信息字段,例如类似:

    =Count(Fields!Value.Value)
    

    由于您不提供范围,聚合将在其当前范围内计算,对于这些值字段,该范围将是特定的组/期间组合。

    评论/更新后编辑

    嗯...我正在想一个简单的方法来做到这一点,但是空手而归...我四处乱逛,可以得到任何组合,除了你想要的那个。

    基本上你正在寻找类似的东西:

    =Count(Fields!Value.Value, "ParentRowGroup", "CurrentColumnGroup")
    

    我想不出一个有效的方法来做到这一点。

    老实说(对于 SSRS 来说,这不是第一次),这里阻力最小的路径是在生成它时将要显示为额外列的周期计数添加到 DataSet,然后只显示这个值在矩阵的细节中未聚合。

    烦人,但如果您可以控制 DataSet,那么对于报告级别的难题来说,这是一个简单的解决方案。

    【讨论】:

    • 我可以这样做,但实际上我的要求不同,感谢您的回答并编辑了我的问题,我才意识到这一点。所以基本上,每个值应该代表组和期间的总数(因此,在上面给出的示例中,该值应该重复两次)。
    • 补充了我的想法,请看上面。
    • 感谢您的回复伊恩。转到存储过程并将其更改为解决它的唯一选项正是我所担心的,因为期间组是在报告定义中计算的,因为允许用户选择要分组的期间。此外,我们希望避免在存储过程中进行任何类型的分组,因为它被多个报表使用。
    【解决方案2】:
    =CountRows()
    =CountRows("GroupByInitial")
    =CountRows("GroupByInitial",Recursive)
    

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多