2013-05-07 55 views
2

分组我有一个SSRS表矩阵与此类似: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")

这显然不存在。

所以“值”应该是一个时期

(因此,在上面给出的例子中,值将是在每个周期(一次为每个RowGroup)重复两次)内的一组的总计数是否有一个在SSRS的tablix中显示指定列和行组中所有值的计数的方法?

回答

2

您只需将聚合表达式添加到矩阵详细信息字段中,而不指定范围(例如,是这样的:

=Count(Fields!Value.Value) 

既然你不提供范围,总将在其目前的范围,这对于那些值字段将成为特定组/期组合计算。

编辑点评/更新后

嗯......我试图想一个简单的方法来做到这一点,但未来空手而归......我搞乱周围,可以得到不同的任意组合你想要的那个。

基本上你正在寻找的东西,如:

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

,我想不出来做到这一点的有效途径。

老实说(这不会是SSRS的第一次)这里阻力最小的路径是当你生成它时,将你想显示的额外列作为额外列添加到你的DataSet中,然后只显示这个价值在矩阵的细节未集聚。

令人讨厌的是,如果你能控制DataSet,那么在报告级别解决什么是困难的问题是一个简单的解决方案。

+0

我可以做到这一点,但实际上我的要求不同,我刚刚意识到这一点,感谢您的回答并编辑了我的问题。因此,基本上,每个值应该代表组和周期的总和(因此,在上述示例中应该重复两次该值)。 – tomsky 2013-05-07 14:14:31

+0

添加了我的想法,请参阅上文。 – 2013-05-07 16:29:30

+0

谢谢你的回复伊恩。转到存储过程并将其更改为解决此问题的唯一选项正是我所担心的,因为在报告定义中计算了“期间”组,因为用户可以选择要分组的期间。另外,我们希望避免存储过程中的任何分组,因为它被多个报表使用。 – tomsky 2013-05-08 06:37:50

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