计算SSRS报告中汇总的最小值和最大值

时间:2019-06-12 02:19:31

标签: reporting-services ssrs-2008-r2

我的SSRS报告具有一个数据集,该数据集将返回以下结果。由于某种原因,结果集可能不会更改。请注意,Category - SubCategory对可能没有区别。

Category Sub-Category Value
-----------------------------
A        A1           100
A        A2           120
A        A2           60
B        B1           80
B        B2           90
B        B2           70

我想在报表矩阵中显示每个SUM(category, subCategory)的最大值和主值,其确切格式如下(括号中的注释除外):

Max |  180 (two A-A2 rows)
Min |  80  (B-B1)

如何定义矩阵并编写表达式?如果在这两列上进行分组,则无论我设置什么表达式,矩阵都会显示四行。

3 个答案:

答案 0 :(得分:0)

我试图在本地SSRS上运行您的用例。

在左侧,我具有原始数据,在右侧,您具有期望的结果。

enter image description here

您需要的是如下分组

enter image description here

表示总和如下

enter image description here

答案 1 :(得分:0)

将Tablix放入报告中。然后在行组(底部)上单击(详细信息),然后选择添加组>父组。点击添加组标题,然后选择您的子类别。对您的类别执行相同的操作。现在,“行分组”层次结构应为“类别”>“子类别”>“详细信息”。

现在,您会在Tablix的左侧看到括号,它们表示级别。如果现在使用下面的表达式及其特定级别的组名,则将得到所需的内容。

'At the Category group level header
=Sum(Fields!Value, "CategoryGroupName")

'At the Sub-Category group level header
=Sum(Fields!Value, "SubCategoryGroupName")

答案 2 :(得分:0)

我有办法做到。解决方法如下:

  1. 创建一个名为row的行父组。让组按常数分组。
  2. category组下的row组下创建一个子组Category
  3. 在组内的矩阵单元中,添加以下表达式:=Min(Sum(Fields!Value.value), "Category"), "row")。这就是我要建立一个常数组的原因,因为我想使嵌套的聚合函数合法。
  4. 该表达式将返回Category组内所有相同的值。现在,在这些行组之外添加另一行。选择一个单元格,然后输入=ReportItems!ThatTextBox.Value
  5. 隐藏组成您的组的行。
  6. 对MAX值执行相同操作(从添加相邻组开始,按常数分组)