Bonjour, j'ai une table de correspondance pour les jours ferier, et je recherche le premier jour ouvré a partir d'une date.

Pour tester je recherche le premier jour anterieur a une date ouvré, voici mon code :

Bon, c'est pas tres clair, mais en gros le select me retourn 'O' ou 'N' celon si c'est un jour ouvré ou pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
declare @STEP int
select @STEP = 0
 
while((select DAT_OPEN_FLG from ID_DAT where COUNTRY='FRA' and DAT_REF = dateadd(day,@STEP,(select EVT_DAT from ID_EVT where EVT_NUM=1887535))) != 'O')
begin
select DAT_OPEN_FLG from ID_DAT where COUNTRY='FRA' and DAT_REF = dateadd(day,@STEP,(select EVT_DAT from ID_EVT where EVT_NUM=1887535))	
select @STEP = @STEP - 1
end
Le resultat de la requete retourne :
'N', il devrai continuer la boucle, puisque la condition n'est pas vraie...
Pourquoi s'arrete t'il?
PS : Si je met le select de boucle apres le select @STEP = @STEP - 1, il affiche la meme chose!!!!
Merci