使用Sql-Server 2005。
我有3个列的Users表。 userID,parentUserID和userEmail。顶级用户在parentUserID中为null,子用户具有一些userID。 我想编写一个查询,将儿童计入某个用户ID的最低级别。
选择包含所有孩子,孩子等的用户......等等。我只需要计算顶级用户以下的用户数。我不需要详细信息或用户ID。
感谢
答案 0 :(得分:3)
DECLARE @TargetUserId int
SET @TargetUserId = 1;
WITH Children AS
(
SELECT users.userID, users.parentUserID
FROM users
WHERE parentUserID = @TargetUserId
UNION ALL
SELECT users.userID, users.parentUserID
FROM users
JOIN Children ON users.parentUserID = Children.userID
)
SELECT COUNT(*) As SubordinateCount FROM Children