SQLServer2005查询问题
我有一个包含以下字段的表SQLServer2005查询问题,sql,sql-server-2005,Sql,Sql Server 2005,我有一个包含以下字段的表 监督员 埃皮德 这就像是一个推荐计划。一个人可以推荐他下面的三个人,即, 3指的是三个人,即458,同样4指的是910,11,同样8指的是12,13,是这样的 我想要一个查询来获得一个家伙下面的下线成员总数,比如说3,你可以使用递归 像这样的 DECLARE @Table TABLE( Supervisorid INT, Empid INT ) INSERT INTO @Table SELECT 3, 4 INSERT INTO @
- 监督员
- 埃皮德
我想要一个查询来获得一个家伙下面的下线成员总数,比如说3,你可以使用递归 像这样的
DECLARE @Table TABLE(
Supervisorid INT,
Empid INT
)
INSERT INTO @Table SELECT 3, 4
INSERT INTO @Table SELECT 3, 5
INSERT INTO @Table SELECT 3, 8
INSERT INTO @Table SELECT 4, 9
INSERT INTO @Table SELECT 4, 10
INSERT INTO @Table SELECT 4, 11
INSERT INTO @Table SELECT 8, 12
INSERT INTO @Table SELECT 8, 13
DECLARE @ID INT
SELECT @ID = 3
;WITH Vals AS (
SELECT *
FROM @Table
WHERE SuperVisorID = @ID
UNION ALL
SELECT v.SuperVisorID,
t.Empid
FROM Vals v INNER JOIN
@Table t ON v.Empid = t.Supervisorid
)
SELECT SuperVisorID,
COUNT(Empid) Total
FROM Vals
GROUP BY SuperVisorID
您可以使用递归 像这样的
DECLARE @Table TABLE(
Supervisorid INT,
Empid INT
)
INSERT INTO @Table SELECT 3, 4
INSERT INTO @Table SELECT 3, 5
INSERT INTO @Table SELECT 3, 8
INSERT INTO @Table SELECT 4, 9
INSERT INTO @Table SELECT 4, 10
INSERT INTO @Table SELECT 4, 11
INSERT INTO @Table SELECT 8, 12
INSERT INTO @Table SELECT 8, 13
DECLARE @ID INT
SELECT @ID = 3
;WITH Vals AS (
SELECT *
FROM @Table
WHERE SuperVisorID = @ID
UNION ALL
SELECT v.SuperVisorID,
t.Empid
FROM Vals v INNER JOIN
@Table t ON v.Empid = t.Supervisorid
)
SELECT SuperVisorID,
COUNT(Empid) Total
FROM Vals
GROUP BY SuperVisorID
考虑重新措词/格式化你的问题。很难理解。谢谢@OMG Ponies.:)仍然很难理解第二段THO(不是因为格式化,而是因为措辞不好)。考虑重新措词/格式化你的问题。很难理解。谢谢@OMG Ponies.:)第二段仍然很难理解(不是因为格式,而是因为措词不当)。