В общем спасибо ВСЕМ за пинки, наконец-то разобрался ...
В общем виде запрос о котором я говорил теперь выглядит так:
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
Работает на ура! правда выглядит некрасиво ...
Собствено остался только один вопрос насколько "проктологически"
выглядит данная конструкция и не наткнусь ли я на какие-нибуть
явные грабли ?
С уважением,
Константин Григорьевич.
===============