Bonjour à tous,
Après recherche sur le forum, je n'arrive pas à vraiment trouver réponse à mon problème donc je me décide enfin à créer un nouvele discussion. Je travaille sur une table qui contient tous les jours de l'année et qui indique s'ils sont ou non ouvrés (O = ouvré, N = non ouvré) :
De cette table, je souhaite extraire une série de jours ouvrés les plus proches de plusieurs dates (supérieurs ou égaux). Je souhaite par exemple connaître les 1ers jours ouvrés après le 11/01/2011, le 28/02/2011, …
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 01/01/2011 N 02/01/2011 N 03/01/2011 O 04/01/2011 O 05/01/2011 O 06/01/2011 N 07/01/2011 N 08/01/2011 O ...
Pour une seule date, très simple, je fais quelque chose du genre :
Par contre, pour plusieurs dates, je n'arrive pas à trouver. J'ai essayé des choses de ce genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select min(date) from tableDates where date >= <ma première date recherchée> and typeJour = 'O'
mais je trouve cette solution très moche et le résultat ne correspond pas véritablement à ce que j'attends. Est-ce que vous auriez une idée de requête SQL pour répondre à mon attente ? (en partant du postulat qu'une solution existe bien à mon problème)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select (select min(date) from tableDates where date >= <1ère date cherchée> and typeJour = 'O'), (select min(date) from tableDates where date >= <2ème date cherchée> and typeJour = 'O'), (select min(date) from tableDates where date >= <3ème date cherchée> and typeJour = 'O'), ... from tableDates
Merci d'avance pour vos réponses.
Pour information : je suis sous DB2, je ne dois en aucun cas modifier la BDD, je ne peux pas utiliser de procédure stockée.
Partager