如何在SSRS中对聚合进行分组和过滤

时间:2016-10-07 15:12:03

标签: reporting-services group-by filtering aggregate ssrs-2012

我需要报告在我的SSRS报告的数据集中有多个记录的人数,而我无法完全了解如何过滤分组。

因此,如果数据集结果是:

ID     PersonID    FileID
1      1234         abc
2      7890         ade
3      5647         aer
4      1234         xyz

我想报告1.有一个人有超过1个记录。

是否有表达或我可以用来做这件事的事情?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用LookupSet和CountDistinct函数来获取所需的计数,但是您需要用于显示计算范围的文本框。

如果您想在表格中显示一个记录总数超过一个的人数,请使用以下表达式:

=CountDistinct(
IIF(
  LookupSet(
    Fields!PersonID.Value,Fields!PersonID.Value,
    Fields!ID.Value,"DataSetName"
  ).Length>1,Fields!PersonID.Value,Nothing)
)

将其设置在任何组范围之外:

enter image description here

但是,如果要在文本框中显示tablix外部有多个记录的人数,可以添加其他Tablix并删除必要的行和列以仅保留一个文本框,然后将dataset属性设置为您正在使用的数据集名称并使用相同的表达式。

enter image description here

它应该产生:

enter image description here

注意我的数据集有更多行来说明功能。在右侧只有一个带计数的文本框。

如果有帮助,请告诉我。

答案 1 :(得分:0)

如果您希望结果如下所示。

<强>步骤:

  1. 在人员ID
  2. 上创建一个组
  3. Right Click on Group > Add Total > Before
  4. 添加一列并放入=Count(Fields!PersonID.Value)
  5. 如果您只想显示有多个人的人,请设置Tablix行的可见性属性。
  6. enter image description here