【问题标题】:Grouping issue in SSRSSSRS 中的分组问题
【发布时间】:2013-01-30 22:58:28
【问题描述】:

所以我有一个有分区和子分区的表。结构如下:

COMPANYID | DIVISIONID | DIVISION | PARENTID
    1     |     1      | North    | NULL
    1     |     2      | South    | NULL
    1     |     3      | East     | NULL
    1     |     4      | West     | NULL
    1     |     5      | Sales    | 1
    1     |     6      | Service  | 1
    1     |     7      | Sales    | 2
    1     |     8      | Service  | 2
    1     |     9      | Sales    | 3
    1     |     10     | Service  | 3
    1     |     11     | Sales    | 4
    1     |     12     | Service  | 4

表格背后的想法是,数据将表明所有这些部门/子部门都属于同一家公司。任何具有空 PARENTID 的东西都是“部门”,任何具有 PARENTID 的东西都是“子部门”。最多有 2 层(Division --> Subdivision)。该表将创建以下层次结构:

Company 1
    North
        Sales
        Service
    South
        Sales
        Service
    East
        Sales
        Service
    West
        Sales
        Service

我正在尝试制作一份 SSRS 报告,其中显示有关公司的详细信息,包括包含所有部门和子部门的表格。我正在使用以下查询来检索所有部门和细分的列表:

SELECT division, parentid
FROM division
WHERE companyid=@companyid

@companyid 是报告的参数。我的思考过程是,我想创建一个具有父组和详细信息组的表,其中父组将是所有具有空 PARENTID 的行,然后详细组将列出其 PARENTID 等于父行的除法的所有行.我只是不确定如何在组中进行设置。过滤器?分开查询?在 SQL 查询中做吗?

非常感谢任何和所有帮助!谢谢!

【问题讨论】:

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


    【解决方案1】:

    对于最多包含 2 个级别的简单层次结构,您只需将表连接起来即可:

    SELECT D1.CompanyId, D1.DivisionId, D1.Division, D2.Division AS Subdivision
    FROM DivisionTable D1
    INNER JOIN DivisionTable D2 ON D1.DivisionId = D2.ParentId AND D1.CompanyId = D2.CompanyId
    WHERE D1.CompanyId = @CompanyId
    

    【讨论】:

    • 这就是我最终做的事情......我自己加入了它并选择了部门和 parent.division 然后只是在 parent.division 上分组。感谢您的帮助!
    【解决方案2】:

    如果我正确理解了您的目标,您希望报表以层次结构模式显示信息。

    如果是这样,您可以通过设置递归层次结构组来实现。

    报告服务能够以“树”布局显示“层次结构”信息

    For more information look here

    您不必创建另一个查询,第一个具有 CompanyID 的查询和 ParentID 就可以了

    【讨论】:

      【解决方案3】:

      您只需要将您的 select 语句作为数据集,SSRS 就可以为您进行分组。您甚至可以在多个级别上进行分层,或者更好地根据过滤器折叠和扩展您的分组。

      如何开始:

      1. 按照您的说明创建数据集
      2. 从工具箱中放入一个表格对象
      3. 只放入明细数据列
      4. 在“设计”布局的左下方单击“详细信息”,然后单击“添加组>父组”。选择您的分组
      5. 如果您愿意,可以按需“折叠”详细信息列。您可以在详细信息分组上选择“可见性”。 '报告最初运行时'>选择'隐藏'。选中“可以通过此报告项切换显示”:选择一个单元格引用,以引用您要用来展开详细信息的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多