Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
MAULER Member Откуда: Сообщений: 906 |
Здравствуйте. Есть таблица: declare @link table ( child_ID int not null primary key clustered, parent_ID int not null ); заполняется таким запросом: insert into @link (child_ID, parent_ID) select TargetID, SourceID from LinksAre where LinkType = 2; и содержит идентификаторы дочернего и родительского элемента. По сути это дерево. Мне нужно по начальному указанному идентификатору дочернего элемента, добраться до корня дерева. Написал рекурсивный запрос WITH Links AS ( select child_ID, parent_ID from @link where child_ID = 27015 union all select k.child_ID, k.parent_ID from @link k INNER JOIN Links L ON k.child_ID = L.parent_ID ) select parent_ID from Links который отработал верно. т.е. вернул мне набор данных, с правильным последним значением родительского элемента:
Как сделать так, чтобы возвращался не весь набор а только последнее значение parent_ID набора? (В моём случае 26706) |
|||||||||||||
19 мар 19, 20:14 [21837748] Ответить | Цитировать Сообщить модератору |
felix_ff Member Откуда: Moscow Сообщений: 1698 |
MAULER,WITH Links AS ( select cast(1 as int) as rn, child_ID, parent_ID from @link where child_ID = 27015 union all select cast(l.rn+1 as int), k.child_ID, k.parent_ID from @link k INNER JOIN Links L ON k.child_ID = L.parent_ID ) select top(1) parent_ID from Links order by rn desc |
19 мар 19, 20:53 [21837775] Ответить | Цитировать Сообщить модератору |
MAULER Member Откуда: Сообщений: 906 |
felix_ff, благодарю, то что надо! |
19 мар 19, 21:18 [21837786] Ответить | Цитировать Сообщить модератору |
MAULER Member Откуда: Сообщений: 906 |
Подскажите пожалуйста, а как мне быть, если надо пробежаться по таблице @task с ID-шниками и каждый ID-шник "подсунуть" вместо 27015 и получить корень другого дерева? Возможно это сделать без курсора? |
20 мар 19, 09:02 [21838032] Ответить | Цитировать Сообщить модератору |
Щукина Анна Member Откуда: Сообщений: 1507 |
|
||
20 мар 19, 09:10 [21838038] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |