none
SSRS 报表中 分组后 统计分组个数。 RRS feed

  • 问题

  • 各位好,请问一下。 在SSRS报表中按照某个字段分组后 怎么统计出分组的个数。

    例如 有 worker表 显示如下

    name  work

    A          1

    B          2

    B          3

    C          4

    A          5

    共有 3 个 name 

    按照name分组后得到  A组 B组 C组 。。。现在就是要统计分组的个数。。因为有3个组。。所以分组个数是3.


    • 已移动 ChiYau 2012年4月13日 4:00 這個提目和SQL Server 的Reporting Services 相關的, 所以發在SQL Server 版塊比較合適 (发件人:Visual Studio 相关讨论(Visual Studio 2010以前版本))
    2012年4月12日 6:35

答案

  • 这个取决于你如何在报表上显示你的分组了。

    1) 如果你只是想把分组的个数显示在报表的某个地方,你可以在组中使用SSRS 中的 RunningTotal 函数;

    2)如果你想把分组的数量显示在组的列中, 比如:

    1   A     1

    2   B     2

    2   B    3

    3   C    4

    1   A    5

    你可以考虑使用T-SQL 中的,Rank 或 Dense_Rank 函数 在你的报表数据集里再加一列.

    3)如果你只是想在报表的某个地方显示组的数量, 你也可以考虑使用 CountDistinct 产生一个新的数据集,但是麻烦的是你同样需要将你的报表变量与这个数据集建立关联,否则的话它只是一个固定的数.

     

    2012年4月14日 12:16
    版主

全部回复

  • 你可以用CountDistinct來取得群組的個數。

    http://msdn.microsoft.com/en-us/library/ms155923(v=sql.90).aspx


    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/

    2012年4月13日 6:13
  • 这个取决于你如何在报表上显示你的分组了。

    1) 如果你只是想把分组的个数显示在报表的某个地方,你可以在组中使用SSRS 中的 RunningTotal 函数;

    2)如果你想把分组的数量显示在组的列中, 比如:

    1   A     1

    2   B     2

    2   B    3

    3   C    4

    1   A    5

    你可以考虑使用T-SQL 中的,Rank 或 Dense_Rank 函数 在你的报表数据集里再加一列.

    3)如果你只是想在报表的某个地方显示组的数量, 你也可以考虑使用 CountDistinct 产生一个新的数据集,但是麻烦的是你同样需要将你的报表变量与这个数据集建立关联,否则的话它只是一个固定的数.

     

    2012年4月14日 12:16
    版主