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 régulier
    Inscrit en
    Juin 2010
    Messages
    359
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 359
    Points : 77
    Points
    77
    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
    Microsoft SQL Server Management Studio v17.9.1

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

    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
    Points : 7 740
    Points
    7 740
    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
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Points : 9
    Points
    9
    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
    Futur Membre du Club Avatar de wilder1626
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2018
    Messages : 12
    Points : 9
    Points
    9
    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 055
    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 055
    Points : 9 394
    Points
    9 394
    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.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. Avoir de cellule de types différents dans une même colonne
    Par mehdiing dans le forum Composants
    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