2
使用Sql-Server 2005.幫助遞歸tsql查詢
我有3列用戶表。用戶ID,parentUserID和userEmail。頂級用戶在parentUserID中有空,子用戶有一些用戶ID。 我想寫一個查詢,計數到某些用戶ID的最低級別的兒童。
選擇用戶與他的所有子女,他們的孩子....等等。我只需要那些低於頂級用戶的用戶數量。我不需要詳細信息或他們的用戶ID。
感謝
使用Sql-Server 2005.幫助遞歸tsql查詢
我有3列用戶表。用戶ID,parentUserID和userEmail。頂級用戶在parentUserID中有空,子用戶有一些用戶ID。 我想寫一個查詢,計數到某些用戶ID的最低級別的兒童。
選擇用戶與他的所有子女,他們的孩子....等等。我只需要那些低於頂級用戶的用戶數量。我不需要詳細信息或他們的用戶ID。
感謝
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
你需要一個-1那裏的某個地方,從而使目標用戶不能算作它的一個子。 – 2010-07-01 13:40:31
@Philip - 編號頂級是'parentUserID = @TargetUserId'而不是'UserID = @TargetUserId'所以目標用戶永遠不會被帶入。 – 2010-07-01 13:41:42
@eugeneK我現在編輯的CTE之前缺少一個分號。 – 2010-07-01 13:48:37