SELECT
 (T_SAL.MatriculeSalarie || ' ' || NVL(T_SAL.Nom, ' ') || ' '  || NVL(T_SAL.Prenom, ' ') ) as Col1,
 'Date de fin d''absence : ' || TO_CHAR(T_GHRSAL.PeriodeFin) as Col2
FROM
  T_PAI,
  T_SAL
  LEFT OUTER JOIN T_GHRSAL ON T_GHRSAL.NumSalarie=T_SAL.SA_CompteurNumero
WHERE (   (extract(MONTH FROM T_GHRSAL.PeriodeFin) = NVL(NULLIF((T_PAI.MoisEnCours - NVL(%Mois%,0)),0),12))
         and ( ( extract(YEAR FROM T_GHRSAL.PeriodeFin) = T_PAI.AnneeEnCours - 1
                 AND (NVL(NULLIF((T_PAI.MoisEnCours - NVL(%Mois%,0)),0),12) = 12
                      AND NVL(%Mois%,0) = 1)
                )
                OR
                ( extract(YEAR FROM T_GHRSAL.PeriodeFin) = T_PAI.AnneeEnCours
                 AND (NVL(NULLIF((T_PAI.MoisEnCours - NVL(%Mois%,0)),0),12) <> 12
                      OR NVL(%Mois%,0) = 0)
                 )
              )
		  and (T_GHRSAL.CodeNE = NVL(%NatureAbsence1%, 0)
               OR T_GHRSAL.CodeNE = NVL(%NatureAbsence2%, 0)
               OR T_GHRSAL.CodeNE = NVL(%NatureAbsence3%, 0))
       )

Order by T_SAL.MatriculeSalarie, T_GHRSAL.CodeNE