Bonjour
Je cherche dans un premier temps à compter les occurrences d'un CODE dans une liste, disons ('X','Y','Z') et une liste ('K','L','M') ainsi que lorsque le code n'appartient à aucune liste:
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT MATABLE_1.NUM_DOSSIER,MATABLE_2.NOM, SUM(CASE WHEN CODE IN ('X','Y','Z') THEN 1 ELSE 0 END) AS CODE_DU_FORFAIT_A, SUM(CASE WHEN CODE IN ('K','L','M') THEN 1 ELSE 0 END) AS CODE_DU_FORFAIT_B, SUM(CASE WHEN CODE NOT IN ('X','Y','Z','K','L','M') THEN 1 ELSE 0 END) AS CODE_HORS_FORFAIT FROM MATABLE_1 INNER JOIN MATABLE_2 ON MATABLE_1.a=MATABLE_2.A WHERE (...) GROUP BY MATABLE_1.NUM_DOSSIER,MATABLE_2.NOM
Cela m'affiche:
-NUM_DOSSIER -NOM- -CODE_DU_FORFAIT_A- -CODE_DU_FORFAIT_B- -CODE_HORS_FORFAIT
avec dans chaque colonne le nombre d'occurrences
Je voudrais maintenant, sur ces critères avoir la chose suivante:
-Sachant que si pour un NOM et un NUM_DOSSIER donné: Au moins une occurrence d'un code de la liste ('K','L','ZM) donne obligatoirement un FORFAIT_B, ce quelquesoit la présence ou non d'autres codes de l'autre liste ou n'appartenant à aucune liste
-Sachant que la présence d'au moins un CODE de la liste ('X','Y','Z') mais SANS AUCUNE occurrence de code de la liste ('X','Y','Z') donne un FORFAIT_A
-Dans les autres cas, un code n'appartenant à aucun CODE des 2 listes: ('K','L','M','X','Y','Z') donne ABSENCE_DE_FORFAIT
Je veux afficher les colonne de la façon suivante:
-NUM_DOSSIER -NOM- -TYPE_FORFAIT
Comment faire?
Merci de vos réponses
Partager