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 :

Joindre deux requêtes en un seul tableau


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2023
    Messages : 4
    Par défaut Joindre deux requêtes en un seul tableau
    Bonjour tous le monde,

    Je vous sollicite pour un souci que je n'arrive pas à résoudre.
    Je suis débutant donc il est possible que ça soit simple mais que je n'ai simplement pas trouvé la réponse.

    J'ai donc 2 requêtes qui sont très similaires mais le résultat n'est pas le même.
    Les deux réponses aux requêtes se mettent sur deux tableaux séparés ce qui est normal, mais histoire d'optimiser ça et de rendre ça plus jolie, je souhaiterais que les deux réponses soient présentées sous forme d'un seul tableau avec la première réponse sur la première colonne et la deuxième sur une autre colonne collée a celle-ci.

    Voila le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT sum(count(catalogue.l_ref)) as "Nombre PC"
    from og.objet
    left outer join og.catalogue on (objet.c_ref = catalogue.c_ref)
    where catalogue.c_typobj in ('PORTABLE','UC')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT sum(count(catalogue.l_ref)) as "Nombre UC"
    from og.objet
    left outer join og.catalogue on (objet.c_ref = catalogue.c_ref)
    where catalogue.c_typobj in ('UC')
    Voila le résultat attendu:
    NombrePC  |    Nombre UC
       XXXXX    |      XXXXX
    Merci d'avance pour votre aide

  2. #2
    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
    La commande UNION (ou sa variante UNION ALL) devrait solutionner ton problème.

    Edit :
    Euh ... c'est peut-être un problème au moment de copier tes requêtes ici, mais il me semble que ta 2ème requête est juste une partie de la 1ère ?

    Edit 2 :
    Ah non, la différence est subtile !

    Edit 3 :
    En lisant la réponse de Vanagreg, et en relisant la question, je vois que je n'avais pas compris la question.
    Tout faux.

  3. #3
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 169
    Par défaut
    Bonsoir,

    Il suffit de conditionner le count:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT count(catalogue.l_ref) as "Nombre PC", count(case when catalogue.c_typobj = 'UC' then catalogue.l_ref end) as "Nombre UC"
    from og.objet
    left outer join og.catalogue on (objet.c_ref = catalogue.c_ref)
    where catalogue.c_typobj in ('PORTABLE','UC');

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2023
    Messages : 4
    Par défaut
    Bonjour, merci pour votre aide, j'ai donc repris la solution de vanagreg et je l'ai réajusté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SELECT count(case when catalogue.c_typobj = 'PORTABLE' then catalogue.l_ref end)as "nombre portable", count(case when catalogue.c_typobj = 'UC' then catalogue.l_ref end) as "Nombre UC"
    from og.objet
    left outer join og.catalogue on (objet.c_ref = catalogue.c_ref)
    where catalogue.c_typobj in ('PORTABLE','UC')
    Merci pour votre aide !

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

Discussions similaires

  1. Joindre deux requêtes
    Par Lobby dans le forum Requêtes
    Réponses: 16
    Dernier message: 17/08/2010, 23h15
  2. [MSSQL 2K5] PBM pour mixer deux requêtes en une seule
    Par fredfred dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/07/2010, 15h12
  3. Deux requêtes en une seule?
    Par pcsystemd dans le forum Requêtes
    Réponses: 5
    Dernier message: 09/07/2009, 16h28
  4. Réponses: 6
    Dernier message: 18/09/2007, 17h10
  5. [VB6]Joindre deux recordsets en un seul
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 11/06/2003, 21h06

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