From cf23c7e645c5202ea7d10e3f1587d850753e4241 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Thu, 19 Nov 2020 14:38:04 +0100
Subject: [PATCH] =?UTF-8?q?Elimination=20de=20doublons=20lorsque=20les=20i?=
 =?UTF-8?q?ntervenants=20avaient=20=C3=A0=20la=20fois=20un=20contrat=20et?=
 =?UTF-8?q?=20une=20affectation=20Remont=C3=A9e=20des=20dates=20de=20d?=
 =?UTF-8?q?=C3=A9but=20et=20de=20fin=20pour=20usage=20ult=C3=A9rieur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../Harp\303\250ge/MV_INTERVENANT.sql"                 | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git "a/doc/Connecteurs Import/Harp\303\250ge/MV_INTERVENANT.sql" "b/doc/Connecteurs Import/Harp\303\250ge/MV_INTERVENANT.sql"
index 1e22ef8316..55c2afc391 100644
--- "a/doc/Connecteurs Import/Harp\303\250ge/MV_INTERVENANT.sql"	
+++ "b/doc/Connecteurs Import/Harp\303\250ge/MV_INTERVENANT.sql"	
@@ -9,6 +9,7 @@ i AS (
     psc.c_sous_section_cnu                             z_discipline_id_sous_cnu,
     psc.c_specialite_cnu                               z_discipline_id_spe_cnu,
     pss.c_disc_second_degre                            z_discipline_id_dis2deg,
+    MIN(a.d_deb_affectation)                           date_debut,
     MAX(a.d_fin_affectation)                           date_fin,
     30                                                 poids
   FROM
@@ -18,9 +19,10 @@ i AS (
     LEFT JOIN periodes_sp_sd_deg@harpprod pss                ON pss.no_dossier_pers = a.no_dossier_pers AND pss.no_seq_carriere = a.no_seq_carriere AND COALESCE(a.d_fin_affectation,SYSDATE) BETWEEN COALESCE(pss.d_deb,a.d_fin_affectation,SYSDATE) AND COALESCE(pss.d_fin,a.d_fin_affectation,SYSDATE)
   WHERE -- on sélectionne les données même 6 mois avant et plus d'un an après
     SYSDATE BETWEEN a.d_deb_affectation-184 AND COALESCE(a.d_fin_affectation,SYSDATE)+1
+    AND a.no_contrat_travail IS NULL -- les contrats sont traités ensuite
   GROUP BY
     a.no_dossier_pers, c.c_type_population, psc.c_section_cnu, psc.c_sous_section_cnu, psc.c_specialite_cnu, pss.c_disc_second_degre
-    
+
   UNION ALL
 
   SELECT
@@ -31,6 +33,7 @@ i AS (
     ca.c_sous_section_cnu                              z_discipline_id_sous_cnu,
     ca.c_specialite_cnu                                z_discipline_id_spe_cnu,
     ca.c_disc_second_degre                             z_discipline_id_dis2deg,
+    MIN(ca.d_deb_contrat_trav)                         date_debut,
     MAX(COALESCE(ca.d_fin_execution,ca.d_fin_contrat_trav)) date_fin,
     20                                                 poids
   FROM
@@ -51,12 +54,15 @@ i AS (
     ch.c_sous_section_cnu                              z_discipline_id_sous_cnu,
     NULL                                               z_discipline_id_spe_cnu,
     ch.c_disc_second_degre                             z_discipline_id_dis2deg,
-    ch.d_fin_str_trav                                  date_fin,
+    MIN(ch.d_deb_str_trav)                             date_debut,
+    MAX(ch.d_fin_str_trav)                             date_fin,
     10                                                 poids
   FROM
     chercheur@harpprod ch
   WHERE -- on sélectionne les données même 6 mois avant et plus d'un an après
     SYSDATE BETWEEN ch.d_deb_str_trav-184 AND COALESCE(ch.d_fin_str_trav,SYSDATE)+1
+  GROUP BY
+    ch.no_individu, ch.c_section_cnu, ch.c_sous_section_cnu, ch.c_disc_second_degre
 ),
 comptes (no_individu, rank_compte, nombre_comptes, IBAN, BIC) AS (
   SELECT -- récupération des comptes en banque
-- 
GitLab