83 intermediate metric sum in payg and performance improvement

This commit is contained in:
2026-09-08 19:37:33 +03:00
parent 3db978003f
commit 26451cbd1d
4 changed files with 68 additions and 24 deletions
+22 -4
View File
@@ -31,12 +31,30 @@
<d:field title="Создано">k."__createdAt" as __createdAt</d:field>
<d:field title="Обновлено">k."__updatedAt" as __updatedAt</d:field>
<d:field title="Удалено">k."__deletedAt" as __deletedAt</d:field>
<d:field title="Сделок">(select count(*) from elma.deals d where d._companies=k.__id) as deal_cnt</d:field>
<d:field title="Договоров">(select count(*) from elma.aggrements d where d.company_uid=k.__id) as contract_cnt</d:field>
<d:field title="Допников">(select count(*) from elma.additional_agreements g join elma.aggrements d on (g.contract_uid=d.__id) where d.company_uid=k.__id) as aa_cnt</d:field>
<d:field title="Сделок">COALESCE(dc.deal_cnt, 0) AS deal_cnt</d:field>
<d:field title="Договоров">COALESCE(cc.contract_cnt, 0) AS contract_cnt</d:field>
<d:field title="Допников">COALESCE(aac.aa_cnt, 0) AS aa_cnt</d:field>
</d:field_set>
from elma.companies k
LEFT OUTER JOIN elma.comp_users_ext c on (k.responsible=c.__id)
LEFT JOIN (
SELECT _companies AS company_id, count(*) AS deal_cnt
FROM elma.deals
GROUP BY _companies
) dc ON dc.company_id = k.__id
-- Считаем договоры
LEFT JOIN (
SELECT company_uid, count(*) AS contract_cnt
FROM elma.aggrements
GROUP BY company_uid
) cc ON cc.company_uid = k.__id
-- Считаем доп. соглашения
LEFT JOIN (
SELECT d.company_uid, count(*) AS aa_cnt
FROM elma.additional_agreements g
JOIN elma.aggrements d ON g.contract_uid = d.__id
GROUP BY d.company_uid
) aac ON aac.company_uid = k.__id
where 1=1 <m:filter_build filter=#pageInfo.settings.filter#/>
--AND exists (select * from elma.deals d where d._companies=k.__id)
order by <m:order_build sortArray=#pageInfo.settings.sort.sortArray# fieldCount=#fieldCount#/>
@@ -109,7 +127,7 @@ select count(*) as cnt from elma.companies where 1=1
<c:column width="1%" sortable="false">
<c:td field="f_link_view_edit" class="c"/>
</c:column>
<c:column width="10%" field="__id"/>
<c:column width="10%" field="__id" sortable="false"/>
<c:column width="3%" field="__index"><c:td class="c"/></c:column>
<c:column width="20%" field="f_contragent"/>
<c:column width="5%" field="wz"/>