Bonjour,
Je travaille sous Oracle 10G.
Je réalise la requête suivante :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select decode( ccp_libelle, 'AUTO INDIVIDUELLE CONDUCTEUR' , gad_prime_nette, 0 ) CCP_LIBELLE, decode( ccp_libelle, 'DOMMAGES AUTO 4 ROUES -3,5T' , gad_prime_nette, 0 ) CCP_LIBELLE, decode( ccp_libelle, 'RCAUTO 4 ROUES - 3,5T' , gad_prime_nette, 0 ) CCP_LIBELLE, decode( ccp_libelle, 'ASSISTANCE' , gad_prime_nette, 0 ) CCP_LIBELLE, decode( ccp_libelle, 'PROTECTION JURIDIQUE AUTO' , gad_prime_nette, 0 ) CCP_LIBELLE from t_cde_cpt
Le fait est qu'ici, je donne arbitrairement 5 libellés de ccp, cependant, dans ma réelle requête, je ne connais pas le nombre de libellés différents. Je construits donc ma requête dynamiquement en concaténant les différents libellés, puis je l'exécute ensuite
Avec cette requête, j'obtiens des résultats du genre :
CCP_LIBELLE CCP_LIBELLE_1 CCP_LIBELLE_2 CCP_LIBELLE_3 CCP_LIBELLE_4
0 0 500 0 200
0 10 20 0 0
50 100 0 0 0
Alors que je souhaiterai avoir quelque chose de ce style :
CCP_LIBELLE
0;0;500;0;200
0;10;20;0;0
50;100;0;0;0
Ici la concaténation n'est pas réalisée dans la requête, parce que je ne sais pas encore comment regrouper les résultats dans un même CCP_LIBELLE...
Comment faire pour mettre tout le contenu dans le même CCP_LIBELLE?
J'ai testé la requête suivante :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select decode( ccp_libelle, 'AUTO INDIVIDUELLE CONDUCTEUR' , gad_prime_nette, 'DOMMAGES AUTO 4 ROUES -3,5T' , gad_prime_nette, 'RCAUTO 4 ROUES - 3,5T' , gad_prime_nette, 'ASSISTANCE' , gad_prime_nette, 'PROTECTION JURIDIQUE AUTO' , gad_prime_nette, 0 ) CCP_LIBELLE from t_cde_cpt
Seulement, lorsque ma requête s'exécute, je récupère dynamiquement tous les libellés pour la construire, et la plupart du temps j'ai une erreur : nombre d'arguments excessif. Cela provient à mon avis de la liste de libellés qui est trop longue pour le decode.
Merci pour votre aide! Je dois résoudre ce problème avant demain soir et je bloque dessus...
Partager