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)
),
end_customers_agg AS (
SELECT
unnest(siv.deal) AS deal_id,
STRING_AGG(DISTINCT z.id_klienta, ', ') AS end_customer_wzs
FROM elma.deals_services siv
LEFT JOIN elma.companies z ON siv.end_customer = z.__id
GROUP BY unnest(siv.deal)
)
select
d.__id::text as __id
d.__index
d.__name
d._companies::text as _companies
d."__createdAt" as __createdAt
k.__name as contragent
k.__id::text as contragent_uid
k.id_klienta as wz
d.__status_status
s.status
s.probability_pc
c.__name as owner
c.email as owner_email
c.__status_status as owner_status
a.__name as additional_agreement
a.__id::text as additional_agreement_uid
g.__name as contract
g.__id::text as contract_uid
g.date_of_aggrement as dt_contract
ec.end_customer_wzs
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)
LEFT OUTER JOIN end_customers_agg ec ON (d.__id = ec.deal_id)
where 1=1
order by
select count(*) as cnt from elma.deals d where 1=1
Сделки
#__name#
#additional_agreement#
#contract#
#contragent#
#gridFooter#