Salut à tous

J'ai une requete qui cherche des lignes avec un champ codejour

le probleme c'est qu'elle doit me retourner pour chaque ligne plusieurs ligne en dépend du
codeJour

codeJour contient des valeurs qui ont des sinification précises par exemple

65 veut dire Samedi et Vendredi
7 veut dire Lundi et Dimanche et Mardi parceque dimanche=1, Lundi=2, Mardi=4 ....

voilà ce que j'ai fait

j'ai fait une fonction scalaire appelé (JourReg) qui me retourne une chaine contanant les jours trouvés
en voici un morceau


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 
	declare @resultat nvarchar(250)
 
	set @resultat=''
 
	if @codeJour >=64 
		begin
			set @resultat = 'Samedi'
			set @codeJour = @codeJour - 64
		end
 
	if @codeJour >=32 
		begin
			if @resultat =''
				set @resultat = 'Vendredi'
			else
				set @resultat = @resultat + 'Vendredi'
			set @codeJour = @codeJour - 32
		end
 
	if @codeJour >=16 
		begin
			if @resultat =''
				set @resultat = 'Jeudi'
			else
				set @resultat = @resultat + 'Jeudi'
			set @codeJour = @codeJour - 16
		end
 
........
après j'ai fait une fonction table (son nom est listeJour) qui me retourne cette chaine en liste des jours




Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
select JOUR from (
 
	select case when  CHARINDEX('Lundi', JourReg(65) ,1) <>  0 then 'Lundi' end jour
	union
	select case when  CHARINDEX('Samedi', JourReg(65) ,1) <>  0 then 'Samedi' end jour
	union
	select case when  CHARINDEX('Vendredi', JourReg(65) ,1) <>  0 then 'Vendredi' end jour
	union
	select case when  CHARINDEX('Jeudi', JourReg(65) ,1) <>  0 then 'Jeudi' end jour
 
) lg where jour is not null



Maintenant je fait ma procedure stockes qui va aller chercher mes données et mutliplier chaque
ligne par le nombre de jours trouvés, mais elle marche pas, car il me permet pas d'utiliser
le champ CodeJour de la mesServices


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
select * from mesServices() HPRS
 
	  , listeJour(HPRS.CodeJour) HPJ


avez vous une idée comment je peux le faire

Merci d'avance