помогите с рекурсивным запросом tsql - PullRequest
2 голосов
/ 01 июля 2010

Использование Sql-Server 2005.

У меня есть таблица пользователей с 3 столбцами. userID, parentUserID и userEmail. У пользователей верхнего уровня есть ноль в parentUserID, у дочерних пользователей есть некоторый userID. Я хочу написать запрос, который подсчитывает количество детей до самого низкого уровня определенного идентификатора пользователя.

Выберите пользователя со всеми его детьми, их детьми .... и так далее. Мне просто нужно количество этих пользователей ниже пользователя верхнего уровня. Мне не нужны детали или их ID пользователя.

спасибо

1 Ответ

3 голосов
/ 01 июля 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...