Нихрена не понял, как обычно
вывод напрашивается сам можно было реализовать это простым добавлением
возможности в WITH и написанное было бы такого вида в начале например
(может и както по другому)
WITH RECURSIVE T001_TREE as DISTINCT T003_1b (
Что мешает делать выборку из T003_1b с DISTINCT ?
И еще есть момент почему запрещено писать так
Агрегаты в рекурсивных запросах запрещены стандартом и здравым смыслом.
В твоём случае можно сделать примерно так :
Было
--Предыдущие документы
select distinct D.T003_1, b_StrListAddGet(:HList, (select T003_1 from
t001 where T001.T001_1 = D.T001_1b)) as T003_1b
FROM T001 D join T001_TREE Db on D.T003_1 = Db.T003_1b
where D.T003_3 >= :VT003_3
Стало
select D.T003_1, b_StrListAddGet(:HList, (select T003_1 from t001
where T001.T001_1 = D.T001_1b)) as T003_1b
FROM (SELECT DISTINCT T003_1 FROM T001 where T003_3 >= :VT003_3) D
join T001_TREE Db on D.T003_1 = Db.T003_1b
--
Хорсун Влад