1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| -- Nombre de types
WITH ptype AS
(SELECT pt.partner_code, count(*) AS Nb_type
FROM partner_types pt
GROUP BY pt.partner_code),
-- Nombre d'adresses
pcode AS
(SELECT pa.partner_code, count(*) AS Nb_ad
FROM partners_addresses pa
GROUP BY pa.partner_code),
ptrns AS
-- Nombre de edi/INTTRA
(SELECT ept.partner_code,
sum(case when ept.edi_partner_code NOT IN ('0000034582','0001718903') THEN 1 ELSE 0 END) AS Nb_EDI,
sum(case when ept.edi_partner_code IN ('0000034582','0001718903') THEN 1 ELSE 0 END) AS Nb_INTTRA
FROM edi_partner_translation ept
GROUP BY ept.partner_code),
-- Nombre de factures sur les 3 derniers mois
pfact AS
(select pp.partner_code,count(*) as Nb_factures
from sales_inv_headers sih,partner_profile pp
where sih.inv_date>add_months(sysdate,-3)
and sih.partner_code=pp.partner_code
and pp.partner_status is null
group by pp.partner_code),
pbook AS
-- Nombre de booking sur les 3 derniers mois
(select ja.partner_code,count(*) as Nb_booking
from sce.job_addresses ja,sce.job_headers jh
where ja.job_reference=jh.job_reference
and jh.available_date>add_months(sysdate,-3)
and jh.job_status<>'9'
group by ja.partner_code),
pquot AS
-- Nombre de quotations sur les 3 derniers mois
(select p.partner_code,count(*)as Nb_quo
from quo_header qh, partners p
where qh.crea_date > add_months(sysdate,-3)
and (qh.rate_req_uid = p.partner_uid
or qh.other_party_uid = p.partner_uid)
group by p.partner_code),
pcrm AS
-- Nombre de crm sur les 3 derniers mois
(select c.partner_code,count(*) as Nb_crm
from crm_actions c
where c.starting_date between add_months(sysdate,-3) and sysdate
group by c.partner_code)
SELECT
tpd.partner_code,
coalesce(a1.Nb_type, 0) AS Nb_type_part,
coalesce(b1.Nb_ad, 0) AS Nb_ad_part,
coalesce(c1.Nb_EDI, 0) AS Nb_EDI_part,
coalesce(c1.Nb_INTTRA, 0) AS Nb_INTTRA_part,
coalesce(d1.Nb_factures,0) AS Nb_fact_part,
coalesce(e1.Nb_booking,0) AS Nb_book_part,
coalesce(f1.Nb_quo,0) AS Nb_quo_part,
coalesce(g1.Nb_crm,0) AS Nb_crm_part,
tpd.dup_partner_code,
coalesce(a2.Nb_type, 0) AS Nb_type_dup,
coalesce(b2.Nb_ad, 0) AS Nb_ad_dup,
coalesce(c2.Nb_EDI, 0) AS Nb_EDI_dup,
coalesce(c2.Nb_INTTRA, 0) AS Nb_INTTRA_dup,
coalesce(d2.Nb_factures,0) AS Nb_fact_dup,
coalesce(e2.Nb_booking,0) AS Nb_book_dup,
coalesce(f2.Nb_quo,0) AS Nb_quo_dup,
coalesce(g2.Nb_crm,0) AS Nb_crm_dup
FROM
temp_partner_duplicates tpd
LEFT OUTER JOIN ptype a1
ON tpd.partner_code = a1.partner_code
LEFT OUTER JOIN pcode b1
ON tpd.partner_code = b1.partner_code
LEFT OUTER JOIN ptrns c1
ON tpd.partner_code = c1.partner_code
LEFT OUTER JOIN pfact d1
ON tpd.partner_code = d1.partner_code
LEFT OUTER JOIN pbook e1
ON tpd.partner_code = e1.partner_code
LEFT OUTER JOIN pquot f1
ON tpd.partner_code = f1.partner_code
LEFT OUTER JOIN pcrm g1
ON tpd.partner_code = g1.partner_code
-- Calcul pour les partner duplicate
LEFT OUTER JOIN ptype a2
ON tpd.dup_partner_code = a2.partner_code
LEFT OUTER JOIN pcode b2
ON tpd.dup_partner_code = b2.partner_code
LEFT OUTER JOIN ptrns c2
ON tpd.dup_partner_code = c2.partner_code
LEFT OUTER JOIN pfact d2
ON tpd.dup_partner_code = d2.partner_code
LEFT OUTER JOIN pbook e2
ON tpd.dup_partner_code = e2.partner_code
LEFT OUTER JOIN pquot f2
ON tpd.dup_partner_code = f2.partner_code
LEFT OUTER JOIN pcrm g2
ON tpd.dup_partner_code = g2.partner_code
WHERE
tpd.country = 'VN' |
Partager