Bonjour !

J'ai un petit souci, je trouve pas la syntaxe pour imbriquer plusieurs IF qui eux même contiennent un case.
Je me perd dans les parenthèses et les 'else' ...

Voici un IF qui marche bien.
Je dois y imbriquer la même structure avec des Idtype_service différents.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
if(idtype_service=20090,		
case 
   when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
   when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
   when  max(_TARIF_SERVICE_MARCHE)>0  then  max(_TARIF_SERVICE_MARCHE)  
   when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
 
end ,0) as 'Double'
Ceci...ne marche pas...
Sûrement un souci de parenthèse ou d'alias mal positionné mais je trouve pas la bonne manière pour imbriquer le tout...
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
32
33
34
35
36
37
38
39
40
41
42
if(idtype_service=20090,		
	case 
		when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
		when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
		when  max(_TARIF_SERVICE_MARCHE)>0  then max(_TARIF_SERVICE_MARCHE)  
		when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
	end ,
 
	if(idtype_service=20475,		
		case 
			when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
			when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
			when  max(_TARIF_SERVICE_MARCHE)>0  then max(_TARIF_SERVICE_MARCHE)  
			when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
		end ,
 
		if(idtype_service=20091,		
			case 
					when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
					when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
					when  max(_TARIF_SERVICE_MARCHE)>0  then max(_TARIF_SERVICE_MARCHE)  
					when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
			end ,
			if(idtype_service=20093,		
				case 
					when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
					when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
					when  max(_TARIF_SERVICE_MARCHE)>0  then max(_TARIF_SERVICE_MARCHE)  
					when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
				end ,
				if(idtype_service=20927,		
					case 
						when  max(_TARIF_SERVICE_CLIENT)>0  then max(_TARIF_SERVICE_CLIENT)  
						when  max(_TARIF_SERVICE_PAYS)>0  then max(_TARIF_SERVICE_PAYS)  
						when  max(_TARIF_SERVICE_MARCHE)>0  then max(_TARIF_SERVICE_MARCHE)  
						when  max(_TARIF_SERVICE_PUBLIC)>0  then max(_TARIF_SERVICE_PUBLIC) 
					end 
				,0) as 'QUADRUPLE'
			,0) as 'TRIPLE'
		,0) as 'SINGLE'
	,0) as 'TWIN'
,0) as 'DOUBLE'
Merci pour votre aide...