IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Decode avec résultats concaténés dans une même chaine


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Par défaut Decode avec résultats concaténés dans une même chaine
    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...

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    J'ai pas du bien comprendre.. tu veux jsute concaténer des champs ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT decode( ccp_libelle, 'AUTO INDIVIDUELLE CONDUCTEUR' , gad_prime_nette, 0 ) 
    ||';'||
    decode( ccp_libelle, 'DOMMAGES AUTO 4 ROUES -3,5T' , gad_prime_nette, 0 ) 
    ||';'||
    decode( ccp_libelle, 'RCAUTO 4 ROUES - 3,5T' , gad_prime_nette, 0 ) 
    ||';'||
    decode( ccp_libelle, 'ASSISTANCE' , gad_prime_nette, 0 )
    ||';'||
    decode( ccp_libelle, 'PROTECTION JURIDIQUE AUTO' , gad_prime_nette, 0 ) CCP_LIBELLE,
    FROM t_cde_cpt

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 111
    Par défaut
    C'est exactement ça, ça fonctionne très bien!

    Merci beaucoup pour votre réponse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Combo avec affichage tableau dans une même fenêtre
    Par Caroline38 dans le forum WinDev
    Réponses: 23
    Dernier message: 30/04/2012, 08h55
  2. [XL-2003] Option Button avec résultat intégré dans une formule
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/03/2011, 14h40
  3. Réponses: 11
    Dernier message: 15/09/2006, 19h39
  4. Réponses: 2
    Dernier message: 10/10/2005, 02h25
  5. Résultats dans une même colonne.
    Par souellet dans le forum Langage SQL
    Réponses: 6
    Dernier message: 10/03/2004, 19h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo