Bonjour,
Je suis sur un problème, et je n'arrive pas à transcrire en PL/SQL cette logique suivante :
Une personne suit une formation ou plusieurs formations.
Une formation à une date de début de formation et une date de fin de formation et la personne peut avoir plusieurs formations sur l'année.

la logique est la suivante :
Si la date du jour est comprise dans une période de formation alors prendre date du jour sinon prendre la 1ère date de la prochaine période de formation :


je récupère mes dates de formations en fonction des paramètres et je boucle sur celles ci :
/*si la date du jour est dans la période prendre sysdate comme période de formation*/

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for i in 1..w_t_dateFormation.count loop
   if trunc(sysdate) >=  w_t_dateFormation(i).debut and  trunc(sysdate) <= 
   w_t_dateFormation(i).fin then
    w_x_date := trunc(sysdate);
    exit;
  end if;
end loop;
/*si la date du jour est hors période de formation, prendre la date de la prochaine période de formation*/

Je pense que je dois boucler à nouveau sur mes dates de formations mais ce qui me gêne, c'est comment prendre la date de la période de formation2 une fois que j'ai testé que la période de formation ne jouait pas :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
for i in 1..w_t_dateFormation.count loop
   if trunc(sysdate) <=  w_t_dateFormation(i).debut and  trunc(sysdate) >= 
   w_t_dateFormation(i).fin then
    w_x_date := w_t_dateFormation(i).debut;
    exit;
  end if;
end loop;
Je me demandais si un between n'était pas plus approprié et je ne suis pas sur de mes bornes >= et <= selon la logique.
De plus dans mon code, comment récupérer la bonne date du fait que je passe dans les deux boucles...désolé un peu confus.

merci d'avance de votre aide.