Re-salut,

décidément j'en demande beaucoup aujourd'hui, mais la c'est un poil plus recherché que ma demande précédente.
Je cherche en gros à mettre un CASE dans un WHERE, ce qui, bien évidemment, ne rime à rien.
Néanmoins l'idée est la suivante : je voudrais ramener ca

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
 
 
select 
am0.titulaire, am0.var5, 
hi0.status, count(*) 
from 
SYSADM.hi0 hi0, SYSADM.hi3 hi3, SYSADM.am0 am0, SYSADM.hi00 
where 
am0.titulaire = hi3.personne 
and 
hi0.ref = hi00.code 
and 
hi3.hi0_nrid = hi0.nrid 
and 
hi0.ref like '%FUP%' 
and 
am0.titulaire like '%'
and 
CASE (hi0.status) WHEN 'To do' THEN hi0.date_deb>=DATEADD(month,-12,getdate())
ELSE hi0.faitle>=DATEADD(month,-12,getdate()) 
and 
CASE (hi0.status) WHEN 'To do' THEN hi0.date_deb<=getdate()
ELSE hi0.faitle<=getdate() 
and 
am0.template is null and hi0.template is null
group by am0.titulaire, am0.var5, hi0.status
C'est à dire que ma clause WHERE portera sur des colonnes différentes selon la valeur d'une colonne.

Savez vous comment je pourrais procéder ?

Merci !!

EDIT : Je précise que je n'ai pas le droit d'utiliser d'UNION pour des raisons un peu complexes à expliquer, je ne dois faire qu'un seul select