В общем спасибо ВСЕМ за пинки, наконец-то разобрался ...
В общем виде запрос о котором я говорил теперь выглядит так:

with recursive
            master as (select id from vw_det0 where tovar_id = :tov_id and 
card_id = -1),

            Recursion as (
              select m.id mid, m0.type_id ti, d0.id ci, d0.quantity q, 0 lvl
                from master m
                 join vw_det0 d0 on m.id = d0.id
                  join vw_DOC0 m0
                   on m0.id = d0.doc_id

              UNION ALL

              select r.mid, m1.type_id ti, d1.id ci, d1.quantity q, r.lvl + 1
                from vw_det0 d1 join vw_DOC0 m1
                   on m1.id = d1.doc_id
                       join Recursion r
                   on r.ci = d1.card_id
            ),

            iteration as (select mid from Recursion
                            group by mid
               having sum(case lvl when 0 then q else 0 end)
                     <> sum(case lvl when 3 then q else 0 end)
                )

 select ti, sum(q) from Recursion r
  join iteration i on r.mid = i.mid
   group by ti


Работает на ура! правда выглядит некрасиво ...
Собствено остался только один вопрос насколько "проктологически"
выглядит данная конструкция и не наткнусь ли я на какие-нибуть
явные грабли ?


С уважением,
Константин Григорьевич.
===============


Ответить