Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить все дочерние записи по ID родителя  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Добрый день,

есть таблица с отделами (см. картинку):
- первый отдел - название компании не имеет родителя;
- все остальные отделы имеют родительский ID;


Как зная ID отдела, вытянуть ID и название всех его дочерних отделов (включая дочерние дочерних :-) )

Спасибо.

К сообщению приложен файл. Размер - 113Kb
5 июл 12, 13:38    [12821929]     Ответить | Цитировать Сообщить модератору
 Re: Получить все дочерние записи по ID родителя  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
Рекурсивный CTE Ф1
5 июл 12, 13:45    [12821985]     Ответить | Цитировать Сообщить модератору
 Re: Получить все дочерние записи по ID родителя  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
Программист-Любитель
Рекурсивный CTE Ф1


За наводку спасибо.
WITH MY_NEW_TABLE (DepartmentID, DepartmentName, DepartmentLevel) AS
(
	-- Якорь
	SELECT Id, Name, 0 AS DEPARTMENT_LEVEL FROM  Department WHERE (ParentId IS NULL) UNION ALL
	
	-- Рекурсивный элемент
	SELECT d.Id, d.Name, t.DepartmentLevel + 1 from Department d INNER JOIN MY_NEW_TABLE t ON d.ParentId = t.DepartmentID
)

SELECT * FROM MY_NEW_TABLE


А где раздел Ф1 с рекурсиями? Просто интересно, я не смог найти на этом сайте.
5 июл 12, 14:08    [12822180]     Ответить | Цитировать Сообщить модератору
 Re: Получить все дочерние записи по ID родителя  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Gena928
А где раздел Ф1 с рекурсиями? Просто интересно, я не смог найти на этом сайте.
У Вас на клавиатуре, я полагаю
5 июл 12, 14:10    [12822212]     Ответить | Цитировать Сообщить модератору
 Re: Получить все дочерние записи по ID родителя  [new]
Strangers
Member [заблокирован]

Откуда: Україна
Сообщений: 2613
https://www.sql.ru/forum/actualthread.aspx?tid=395040
5 июл 12, 14:16    [12822254]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить