1

我正在尝试显示一个分层(向下钻取)报告,该报告重复来自子组中父总数的详细数据。例如,销售人员层次结构,其中每个销售人员都可以产生销售额并拥有组成员:

--第 1 人:总销售额 10
---- 第 1 人:2
---- 第 2 人:3
----第 3人:总销售额 5
------ 第 3 人:2
------第 4 人:3

此示例中的第 1 个人和第 3 个人是组领导,他们所在行中显示的总销售额包括他们直接产生的销售额以及他们所在组的销售人员产生的销售额。因此,要正确显示销售额来自何处,人员 1 还必须像组成员一样显示(相同 - 下一级 - 对于人员 3)。

数据源是 SQL 查询。我尝试了几个行分组选项,并尝试将数据作为嵌套集交付或将级别放入单独的列中,但除了在复杂的 SQL 查询中预先格式化数据之外,我想不出另一种方法来完成这项工作 - 我希望他们的是一种更类似于 SSRS 的方式来实现这一点。

示例分层数据:

DECLARE @salespeople TABLE (SpID INT, ParentID INT);
DECLARE @sales TABLE (SpID INT, Amount INT);

INSERT INTO @salespeople (SpID, ParentID) VALUES
(1, NULL),
(2, 1),
(3, 1),
(4, 2);

INSERT INTO @sales (SpID, Amount) VALUES
(1, 2),
(2, 3),
(3, 2),
(4, 3);

WITH rowgroup
AS
(
    SELECT ParentID, sp.SpId, s.Amount
    FROM @salespeople sp
    JOIN @sales s ON sp.SpID = s.SpID
    WHERE ParentID IS NULL
    UNION ALL
    SELECT sp.ParentID, sp.SpId, s.Amount
    FROM @salespeople sp
    JOIN @sales s ON sp.SpID = s.SpID
    JOIN rowgroup r ON r.SpID = sp.ParentID
)
SELECT * FROM rowgroup;
4

1 回答 1

0
  1. 您可以使用表格插入详细信息:SPID 和s。数量
  2. 然后,您可以通过右键单击上面的详细信息行并选择 add parent group来 ** Addd Group** Row 。它将提示您分组,您将选择PID

  3. 然后,您可以使用可见性进行向下钻取,因此当您生成报告时,所有详细信息行都将被隐藏,您可以单击父组行以显示详细信息。就像你拥有的一样。

这应该是一个好的开始,我不知道您的数据集是什么样的,如果您提供,我可以进一步帮助您。

于 2013-09-17T20:09:27.320 回答