Bonjour,
Avant de poser mon problème, voici un peu le contexte :
Dans mon univers, j'ai 2 tables VRS et VRS_SIH liées en outer join sur VRS via 2 champs (RMJ_C_IDE et VRS_C_IDE). Ma table VRS_SIH contient uniquement les rendez-vous ayant été paramétré au moins une fois à la prise de RDV en ligne, donc ne contient pas tous les ID de RDV. J'ai donc créé un nouveau champ (VACATION_OUVERTE_KELDOC_ON) dans VRS_SIH qui en fonction de la valeur de 2 champs indique O pour un rdv ouvert à la prise en ligne ou N pour les rdv non ouverts, avec un CASE, tout fonctionne bien jusque là.
J'ai mis le détail de mon univers avec ces 2 tables en PJ.
Mon problème : dans mon univers, j'ai créé un objet "Indication RDV ouvert O/N" qui prend la valeur de VR_SIH.VACATION_OUVERTE_KELDOC_ON.
Si le RDV est absent de la table VRS_SIH, alors aucune valeur n'est renvoyée et je perds cette ligne dans mes requêtes.
Or, j'aimerais que mon objet indique O si la valeur est O, et N si la valeur est N ou n'existe pas (NULL).
J'ai essayé différentes formules pour définir mon objet mais sans succès :
1 2 3 4
| CASE
WHEN DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON IS NULL THEN 'NULL'
ELSE DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON
END |
=> Les valeur NULL ne sont pas renvoyées
J'ai tenté la même chose avec un DECODE :
DECODE( DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON, NULL, 'NULL', DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON)
Puis avec un NOT EXISTS, mais j'obtiens une erreur Oracle 00942 Table ou vue inexistante
1 2 3 4 5 6
| CASE
WHEN DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON IS NULL THEN 'NULL'
WHEN NOT EXISTS (SELECT DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON FROM DER_VRS_SIH WHERE DER_VRS_SIH.RMJ_C_IDE=F_VRS.RMJ_C_IDE AND DER_VRS_SIH.VRS_C_IDE=F_VRS.VRS_C_IDE)
THEN 'NOT EXISTS'
ELSE DER_VRS_SIH.VACATION_OUVERTE_KELDOC_ON
END |
Auriez-vous une idée de comment je pourrais corriger mon CASE NOT EXISTS ? Ou de quelle autre formule je pourrais utiliser ?
Un grand merci d'avance
Partager