> наверное для точности - having, но всё-авно пока не придумал как :(
Всё равно не совсем понятно, но попробуй так : а) введи вычислимое поле 'уровень дерева' (lvl) как это сделать - много раз обсуждалось б) добавь having sum(case lvl when 0 then quantity else 0 end) <> sum(case lvl when 2 then quantity else 0 end) Оно ? Кстати - select from select тут не нужен, проще написать for with recursive Recursion as ( select m0.type_id ti, d0.id ci, d0.quantity q, 0 lvl from vw_det0 d0 join vw_DOC0 m0 on m0.id = d0.doc_id and d0.card_id = -1 and d0.tovar_id = :tov_id UNION ALL select 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 ) , Sums as ( select ti, sum(q) as tmp from Recursion group by ti having sum(case lvl when 0 then q else 0 end) <> sum(case lvl when 2 then q else 0 end) ) select ti, tmp from Sums into :ti, :tmp do -- Хорсун Влад