Bonjour,
dans l'une de mes grosse requête, je fais un select en fonction d'un code, exemple :
or j'ai environ 230 codes à reprendre, exemple:
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 select identifiant, ( NVL((select t2.libelle from codification t2 where t2.valeur=mafonction(ta.x503_id, -1, 'D120') and idref=48),' ') ) as code1, ( NVL((select t2.libelle from codification t2 where t2.valeur=mafonction(ta.x503_id, -1, 'D110') and idref=48),' ') ) as code2 .... .... from ........ select
D110, D120, D130 etc...
Après discussion, nous avons réduit cette liste à une centaine et le logiciel chaque code contient la valeur "oui" ou rien.
Pour éviter lors du publipostage d'avoir une trop long liste, j'aimerais faire la chose suivante :
sachant qu'on a les resultat suivant :
d120 : oui
d100: oui
d130: oui
d140:
d150:
d160:
si je fais ma requête, j'aimerais avoir un champ avec :
"d120 / d100 / d130" car dans le résultat de ma requête j'ai un oui qui ressort.
J'ai tenté avec un case et un LISTAGG mais j'ai du mal à comprendre.
dans l'image joint, j'ai séparé les zones par des "/", et chaque zones correspond à 1001,1002,1003,1004,1005,1006,2001 et comme j'ai mis une croix là où dans la zone c'est égale à "oui", on affiche que 1003,1005,2001 dans le résultat de la requête.
Mon but étant que dans ma requête, je fais mon select avec mes 100 champs, mais dans le résultat de la requête, j'ai une colonne par exemple, qui dit :
1001 / 1003 / 1005 / 2001
JE pense que c'est un mixte entre le case et le listagg est ce exact?
Merci pour votre aide.
Partager