Имя: Пароль:
1C
 
SQL, CTE и т.д...
0 ДенисЧ
 
01.04.09
12:23
Как известно, в MSSQL 2005 ввели возможность построения рекурсивных запросов через common table expressions
Но я никак не врублюсь, как построить примитивный запрос по справочнику, чтобы дерево получить...
Кто в теме, подскажите...
1 los_hooliganos
 
01.04.09
12:40
Как-то так:

WITH CTE_Номенклатура (ID, ParentID, Level)
AS
(
SELECT ID, ParentID, 1
FROM $Справочник.Номенклатура
WHERE ParentID = $ПустойИд
UNION ALL
SELECT c.ID, c.ID, Level + 1
FROM  $Справочник.Номенклатура c
INNER JOIN CTE_Номенклатура cp ON c.ParentID = cp.ID
)

SELECT * CTE_Номенклатура

PS На работе sql 2000, так что оттестировать не могу.
2 ДенисЧ
 
01.04.09
12:43
Ага, вроде сработало.
Буду дальше ковыряться.
Блдрю