Нихрена не понял, как обычно

вывод напрашивается сам можно было реализовать это простым добавлением
возможности в 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

--
Хорсун Влад


Ответить