with status(status, status_id, probability_pc) as (VALUES ('Закрыта неуспешно',7,0),('Закрыта успешно',6,100),('Договор подписан',5,100),('Договор на подписании',15,90),('Договор на согласовании',12,70), ('Тестирование',8,50),('Отправлено ТКП',10,20),('Внутреннее согласование',37,10),('Проработка решения',4,10),('Сбор потребностей',1,0) ), component as (select siv.deal as deal_uids, siv.type, (siv.cnt*(100-COALESCE(siv.discount,0))/100*p.price*p.cnt*(100-COALESCE(p.discount,0))) as param_cost from elma.deals_services siv join elma.service_parametrs p on (p.__id = ANY(siv.params)) ) select d.__id d.__index d.__name d._companies d."__createdAt" as __createdAt k.__name as contragent k.__id as contragent_uid k.id_klienta as wz d.__status_status s.status s.probability_pc c.__name as owner a.__name as additional_agreement a.__id as additional_agreement_uid g.__name as contract g.__id as contract_uid g.date_of_aggrement as dt_contract from elma.deals d left outer join elma.companies k on (d._companies=k.__id) left outer join status s on (d.__status_status=s.status_id) left outer join elma.comp_users_ext c on (d._owner=c.__id) left outer join elma.additional_agreements a on (d.__id=a.deal_uid) left outer join elma.aggrements g on (a.contract_uid = g.__id) where 1=1 order by limit #pageInfo.recordsPerPage# offset #pageInfo.nStart# select count(*) as cnt from elma.deals d where 1=1 Сделки #additional_agreement# #contract# #contragent# #gridFooter#