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

SQL Oracle Discussion :

Afficher le résultat de tables différentes dans une même colonne


Sujet :

SQL Oracle

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2010
    Messages
    376
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 376
    Par défaut Afficher le résultat de tables différentes dans une même colonne
    Bonjour,

    Je souhaite intégrer dans une requête des résultats de tables différentes dans une même colonne.
    Je cherche, par le biais d'une référence client, à obtenir toutes les commandes passées à son sujet.


    Pour l'instant, voici comment se présente ma requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select table1.dte_cde,
    table2.dte_cde,
    table1.nom_cde,
    table2.nom_cde,
    from table1, table2
    where table1.num_cde = table2.num_cde
    and table1.id_client = ...
    Dans un premier temps, je souhaiterais voir apparaître :
    -colonne 1 (as date_commande): date passage commande table1 (qui est au format date) + date passage commande table2 (qui est au format très pratique de varchar2...)
    -colonne 2 (as libellé_commande): nom commande table1 + nom commande table2

  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
    Avec l'opérateur de concaténation ||
    Pour les dates (au format date) il faut transformer en char avec TO_CHAR

  3. #3
    Membre averti Avatar de wilder1626
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Par défaut
    Bonjour

    Je ne l'ai pas testé de mon coté mais quelque chose comme ça.
    Listagg devrais fonctionner puisque tu as Oracle 11.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TO_CHAR(table1.dte_cde, 'DD MON YYYY') "Date",
    LISTAGG(table1.nom_cde, '|')WITHIN GROUP (ORDER BY table1.nom_cde) "Nom de code"
    FROM table1
    GROUP BY table1.dte_cde

  4. #4
    Membre averti Avatar de wilder1626
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Par défaut
    Si tu veux, tu peux faire en sorte d'avoir une virgule entre les valeurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TO_CHAR(table1.dte_cde, 'DD MON YYYY') "Date",
    LISTAGG(table1.nom_cde, ',')WITHIN GROUP (ORDER BY table1.nom_cde) "Liste"
    FROM table1
    GROUP BY table1.dte_cde

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 204
    Par défaut
    Listagg permet de concaténer 'en colonne' : tu as une table avec 15 lignes, les noms de 15 personnes, tu vas pouvoir afficher ces 15 noms dans une seule cellule. C'est un peu comme SUM() mais avec des chaines de caractères.
    Ici, la demande semble plus simple. On a une colonne DATE1, et une Colonne DATE2, et on veut afficher ces 2 dates dans une seule cellule. (et similaire pour l'autre cellule)
    La fonction CONCAT() permet cela, mais on peut aussi utiliser l'opérateur || comme proposé par McM.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2011, 18h02
  2. [AC-2007] Deux champs différents dans une même colonne
    Par Prettyletter dans le forum IHM
    Réponses: 10
    Dernier message: 23/04/2011, 23h16
  3. Réunir des colonnes de tables différentes dans une requête
    Par GCAccess dans le forum Modélisation
    Réponses: 3
    Dernier message: 13/03/2009, 23h59
  4. [BO XI] Variable différente dans une même colonne
    Par FloLens dans le forum Deski
    Réponses: 6
    Dernier message: 16/04/2008, 16h36
  5. Réponses: 7
    Dernier message: 18/01/2007, 15h03

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