SSRS - 在Tablix中按列和行分组的计数

时间:2013-05-07 13:47:11

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

我有一个类似于此的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中显示指定列和行组中所有值的计数?

2 个答案:

答案 0 :(得分:2)

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

=Count(Fields!Value.Value)

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

评论/更新后修改

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

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

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

我想不出有效的方法。

老实说(并且这不是SSRS的第一次)这里阻力最小的路径是在生成时将要显示的期间计数添加到DataSet的额外列,然后只显示此值在矩阵的细节中分解。

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

答案 1 :(得分:0)

=CountRows()
=CountRows("GroupByInitial")
=CountRows("GroupByInitial",Recursive)