Hello Forum

Ma requête comporte une variable &&my_period qui est définie au début : soit 202001 soit 202009.

En fonction de cette variable, je prends les enfants nés avant 2002 ou 2003 de cette manière et cela fonctionne très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
and per.birth_date_year <     
   case
      when &&my_period = '202001' then 2002
      when &&my_period = '202009' then 2003
   end
Ma question et mon problème se situe ici : en fonction de cette variable, je dois éviter de prendre les enfants qui suivent un certain enseignement :

  • Si 202001 alors 'C63','C04','C05','C10','C12'
  • Si 202009 alors 'C63','C60','C04','C05','C10','C12'


Donc, pour le moment, je dois le faire manuellement :
En 202001 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AND leg.qualification NOT IN ('C63','C04','C05','C10','C12')
En 202009 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
AND leg.qualification NOT IN ('C63','C60','C04','C05','C10','C12')
Est-il possible ici aussi d'utiliser un CASE du style et qui fonctionnerait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
AND leg.qualification NOT IN    
   case
      when &&my_period = '202001' then ('C63','C04','C05','C10','C12')
      when &&my_period = '202009' then ('C63','C60','C04','C05','C10','C12')
   end
J'ai essayé dans tous les sens, avec ou sans ', (,... et rien n'y fait. C'est un peu bête d'avoir automatisé le début et de devoir le faire manuellement pour cette partie.