les heures effectuées en fin de mois sont à associer avec le mois suivant. with w_asso as ( select cptres1_id, (max(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.contrat_id]))[2] as contrat_id, (max(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.oid]))[2] as contrat_mois_id from w_planning join rh.p_contrats_mois on 1=1 and p_contrats_mois.salarie_id = w_planning.salarie_id and w_planning.date between p_contrats_mois.date_debut and p_contrats_mois.date_fin -- Sélection des contrats pendant heures planning. where 1!=1 OR w_planning.contrat_id is null OR w_planning.contrat_mois_id is null group by 1) UPDATE w_planning SET contrat_id = w_asso.contrat_id, contrat_mois_id = w_asso.contrat_mois_id FROM w_asso WHERE w_planning.cptres1_id = w_asso.cptres1_id ; with w_asso as ( select cptres1_id, (min(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.contrat_id]))[2] as contrat_id, (min(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.oid]))[2] as contrat_mois_id from w_planning join rh.p_contrats_mois on 1=1 and p_contrats_mois.salarie_id = w_planning.salarie_id and p_contrats_mois.date_debut > w_planning.date -- Sélection des contrats APRES heures planning. where 1!=1 OR w_planning.contrat_id is null OR w_planning.contrat_mois_id is null group by 1) UPDATE w_planning SET contrat_id = w_asso.contrat_id, contrat_mois_id = w_asso.contrat_mois_id FROM w_asso WHERE w_planning.cptres1_id = w_asso.cptres1_id ; with w_asso as ( select cptres1_id, (max(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.contrat_id]))[2] as contrat_id, (max(array[extract(epoch from p_contrats_mois.date_debut), p_contrats_mois.oid]))[2] as contrat_mois_id from w_planning join rh.p_contrats_mois on 1=1 and p_contrats_mois.salarie_id = w_planning.salarie_id and p_contrats_mois.date_debut < w_planning.date -- Sélection des contrats AVANT heures planning. where 1!=1 OR w_planning.contrat_id is null OR w_planning.contrat_mois_id is null group by 1) UPDATE w_planning SET contrat_id = w_asso.contrat_id, contrat_mois_id = w_asso.contrat_mois_id FROM w_asso WHERE w_planning.cptres1_id = w_asso.cptres1_id ; ]]>