Мне нужно написать рекурсию для таблицы db2, которая содержит отношения родитель / потомок в значениях столбцов.это ужасный дизайн, но, к сожалению, я не могу это контролировать.Это дамп данных из SalesForce.
Каждая запись в таблице дампа представляет уровень группировки кода продукта.Начиная с верхнего уровня Indutstrial, AG, OIL и т. Д., Каждая группа имеет подгруппы с кодами групп до достижения нижнего уровня, который содержит фактический код продукта.Учитывая код продукта (STCC_RECORD_ID), мне нужно получить GROUP_CODE верхнего родителя.Я застрял, любая оценка будет принята с благодарностью.Вот моя последняя версия SQL:
WITH X(ID,STCC_RECORD_ID,PARENT_ID,GROUP_CODE,SEG_NAME) AS
(
SELECT P.ID,P.STCC_RECORD_ID,P.PARENT_ID,P.GROUP_CODE,P.SEG_NAME
FROM HB_EXTRACT.SEGMENTATION P
WHERE STCC_RECORD_ID='0113211'
UNION ALL
SELECT ID,STCC_RECORD_ID,PARENT_ID,GROUP_CODE,SEG_NAME
FROM x
WHERE x.PARENT_ID = ID
)
SELECT * FROM X
Вот вывод из этого.Только нижняя запись показывает:
Это желаемый результат: