Я пытаюсь запустить простой рекурсивный запрос SQL Server 2008.Рекурсивный запрос SQL возвращает только последнюю строку
После этих примеров: http://msdn.microsoft.com/en-us/library/ms186243.aspx и SQL Server recursive query
У меня есть таблица, с идентификатором и ParentID:
ID fParent fName
2 NULL root
3 2 Drug_Error
4 2 Incident
5 4 2007
6 4 2009
7 5 2007-1
8 7 2008-2
с помощью следующего запроса
with recury as (
Select
fs1.ID ,fs1.FParent,fs1.FName
from FoldersStructure as fs1
where fs1.FParent =null
union all
select fs2.id,fs2.FParent,fs2.FName
from FoldersStructure as fs2
inner join recury as r on fs2.FParent= r.ID
)
select ID,FParent,FName
from recury
where ID=8
Я надеялся получить:
2 null root
4 2 incident
5 4 2007
7 5 2007-1
8 7 2007-2
Но я получаю только последний. благодарит заранее.
Вы пробовали опуская свой ИНЕКЕ? В нем конкретно говорится, что вы получите только последний ряд. –
@DaveJohnson, если я удалю, где ID = 8, я получаю каждую строку в таблице. – Lambda
Имена столбцов, выбранных в CTE, не соответствуют именам столбцов в таблице примеров! –