小编www*_*986的帖子

计算树中值的总和(递归查询)

我在表员工(id,name,parentid)中有树结构,并且该表可以嵌套。employees 与另一个具有列(id,employeeid,quantity)的 Sales 表是一对多关系。每个员工都有销售数量。我想计算每个员工以及儿童员工的数量总和。我写了一些代码以便更清楚。

DECLARE @Employees TABLE(ID INT, Name NVARCHAR(100), ParentID INT);
DECLARE @Sales TABLE(ID INT, EmployeeID INT, Quantity INT);    

INSERT INTO @Employees(ID, Name, ParentID)VALUES
(1,N'Employee1', NULL),
(2,N'Employee2', 1),
(3,N'Employee3', 2),
(4,N'Employee4', NULL),
(5,N'Employee5', 4),
(6, N'Employee6', 5)

INSERT INTO @Sales(ID, EmployeeID, Quantity)VALUES
(1,1,4),
(2,1,2),
(3,2,3),
(4,3,2),
(5,3,7),
(6,5,8),
(7,5,3),
(8,6,2)
Run Code Online (Sandbox Code Playgroud)

我加入了这个表,看起来像这样:

在此输入图像描述

这是我的查询

;WITH cte 
AS
(
  SELECT e.ID, e.Name, e.ParentID FROM @Employees e
  WHERE e.ParentID IS NULL
  UNION ALL
  SELECT  e.ID, e.Name, e.ParentID  FROM @Employees e
    INNER JOIN cte …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2008 sql-server-2012

2
推荐指数
1
解决办法
2662
查看次数