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
| WITH ptype AS
(SELECT pt.partner_code, count(*) AS Nb_type
FROM partner_types pt
GROUP BY pt.partner_code),
pcode AS
(SELECT pa.partner_code, count(*) AS Nb_ad
FROM partners_addresses pa
GROUP BY pa.partner_code),
ptrns AS
(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)
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,
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
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
-- 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
WHERE
tpd.country = 'VN' |
Partager