Подскажите пожалуйста, как данный запрос в MsSQL переписать на Х++. Использую СТЕ для раскрытия дерева, нахожу нужный мне уровень и вывожу отфильтрованные данные в итоговом запросе.
Цитата:
;WITH countrySegmentation
AS (SELECT TreeNodeId
,NAME
,PARENTTreeNodeId
,DATAAREAID
,0 Level
FROM dbo.MULTILEVELSEGMENTTREE_ZTR
UNION ALL
SELECT t.TreeNodeId
,t.NAME
,t.PARENTTreeNodeId
,t.DATAAREAID
,Level+1
FROM countrySegmentation c
JOIN dbo.MULTILEVELSEGMENTTREE_ZTR t
ON c.TreeNodeId = t.PARENTTreeNodeId)
select distinct mt.TREENODEID, mt.PARENTTREENODEID, mt.NAME, Level
from MULTILEVELSEGMENTDATA_ZTR md
join MULTILEVELSEGMENTTREE_ZTR mt on md.SEGMENTID = mt.SEGMENTID
join countrySegmentation on mt.TREENODEID = countrySegmentation.TREENODEID
where mt.SEGMENTID = 'География' and Level > 1
order by NAME
Думаю, что надо воспользоваться рекурсивной функцией, но как именно не знаю.
Есть идеи ?