"Константин" > Оносительно недавно с удовольствием для себя открыл прелесть > конструкции WITH RECURSIVE. Что сказать - КЛАС !!!
Ну вот, хоть кто-то пользует (кроме Саши :), уже приятно ;) > Но ещё не до конца вьезжаю как её на полную катушку использовать ;) > Подскажите плиз ... > > Есть документооборот основанный на снятиях каточек, необходимо > построить отчёт о не выполненных заказах. Т.е. о к-ве карточек > не не снятых расходом клиента, но с выводом всех промежуточных > статусов ... Делаю это примерно так: Ни фига не понял > for select ti, sum(q) from ( > WITH RECURSIVE Recursion as ( > select m0.type_id ti, d0.id ci, d0.quantity q 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 from vw_det0 d1 > join vw_DOC0 m1 on m1.id = d1.doc_id > join Recursion r on r.ci = d1.card_id > ) select * from Recursion > ) group by ti into :ti, :tmp do Но, судя по теме письма, тебе может помочь where после select * from Recursion ? -- Хорсун Влад