From 6aaa6d2bdf59eee02a93e1e94187bfd9f04680cb Mon Sep 17 00:00:00 2001 From: Antony Le Courtes <antony.lecourtes@unicaen.fr> Date: Tue, 12 Oct 2021 11:15:58 +0200 Subject: [PATCH] Ajout d'un COALESCE sur les date de fin de contrat dans MV_INTERVENANT.sql --- doc/Connecteurs-Import/Octopus/MV_INTERVENANT.sql | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/doc/Connecteurs-Import/Octopus/MV_INTERVENANT.sql b/doc/Connecteurs-Import/Octopus/MV_INTERVENANT.sql index 2ce013bd3a..46d9d9dd32 100644 --- a/doc/Connecteurs-Import/Octopus/MV_INTERVENANT.sql +++ b/doc/Connecteurs-Import/Octopus/MV_INTERVENANT.sql @@ -1,8 +1,9 @@ CREATE MATERIALIZED VIEW MV_INTERVENANT AS + WITH i AS ( - SELECT DISTINCT code, + SELECT DISTINCT code, MAX(z_statut_id) OVER (partition by code, z_statut_id) z_statut_id, MAX(z_type) OVER (partition by code, z_statut_id) z_type, MIN(source_code) OVER (partition by code, z_statut_id) source_code, @@ -30,7 +31,7 @@ WITH i AS ( JOIN octo.individu_unique@octoprod uni ON icto.individu_id = uni.c_individu_chaine JOIN octo.v_individu_statut@octoprod vinds ON vinds.individu_id = uni.c_individu_chaine - WHERE (icto.d_debut - 184 <= SYSDATE OR icto.d_fin >= SYSDATE) AND icto.code_ose IS NOT NULL + WHERE (COALESCE(icto.d_debut, to_date('01/01/1900', 'dd/mm/YYYY')) - 184 <= SYSDATE OR COALESCE(icto.d_fin, to_date('01/01/9999', 'dd/mm/YYYY')) >= SYSDATE) AND icto.code_ose IS NOT NULL UNION ALL @@ -52,7 +53,7 @@ WITH i AS ( FROM octo.individu_unique@octoprod uni JOIN octo.individu_statut@octoprod inds ON inds.individu_id = uni.c_individu_chaine LEFT JOIN octo.v_individu_statut@octoprod vinds ON vinds.individu_id = uni.c_individu_chaine - LEFT JOIN octo.v_individu_contrat_type_ose@octoprod icto ON uni.c_individu_chaine = icto.individu_id AND icto.d_debut - 184 <= SYSDATE AND icto.d_fin >= SYSDATE AND icto.code_ose IS NOT NULL AND icto.code_ose NOT IN('NON_AUTORISE') + LEFT JOIN octo.v_individu_contrat_type_ose@octoprod icto ON uni.c_individu_chaine = icto.individu_id AND COALESCE(icto.d_debut, to_date('01/01/1900', 'dd/mm/YYYY')) - 184 <= SYSDATE AND COALESCE(inds.d_fin, to_date('01/01/9999', 'dd/mm/YYYY')) >= SYSDATE AND icto.code_ose IS NOT NULL AND icto.code_ose NOT IN('NON_AUTORISE') WHERE inds.d_debut - 184 <= SYSDATE --On ne remonte pas de statut autre pour ceux qui ont déjà un certain type de contrat --AND icto.individu_id IS NULL @@ -65,6 +66,8 @@ WITH i AS ( --AND (vinds.t_doctorant='N' OR vinds.individu_id IS NULL) AND inds.c_source IN ('HARP', 'OCTO', 'SIHAM') ) t + + ), --Trouver le tel pro principal de l'intervenant @@ -281,4 +284,8 @@ FROM i LEFT JOIN compte ON compte.individu_id = induni.c_individu_chaine --On récupére la discipline adaptée directement dans Octopus LEFT JOIN cnua cnua ON cnua.individu_id = induni.c_individu_chaine -WHERE i.validite_fin >= (SYSDATE - (365 * 2)) \ No newline at end of file +WHERE i.validite_fin >= (SYSDATE - (365 * 2)) + + + + -- GitLab