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

Requêtes et SQL. Discussion :

Combiner 2 requêtes en une


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Combiner 2 requêtes en une
    Bonsoir,

    Après 3h de recherche sur internet, je ne suis toujours pas parvenu à trouver comment combiner 2 requêtes en une seule pour obtenir le résultat attendu.

    Etant débutant en SQL, mon problème est assez simple. J'ai 2 tables :
    Part_Used(Ref_pièces, Num_orde, Quantité)
    Pièces(Réf_Pièce, Désignation, PUHTVA)

    On me demande alors d'afficher la désignation et la quantité max de la/des pièce(s) de rechange les plus utilisé(es), en une seule requête.
    J'ai réussi assez vite en utilisant 2 requêtes comme suit :
    R1a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Sum(Part_used.Quantité) AS SommeDeQuantité, Pièces.Désignation
    FROM Pièces INNER JOIN Part_used ON Pièces.Réf_Pièce = Part_used.Ref_pièces
    GROUP BY Pièces.Désignation;
    Puis R1b qui affiche bien ce que je souhaite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SommeDeQuantité AS [Quantité Max], Désignation
    FROM R1a
    WHERE SommeDeQuantité = (SELECT MAX(SommeDeQuantité) FROM R1a)
    Comment pourrais-je donc combiner ces 2 requêtes le plus simplement possible ?


    Merci d'avance,

    Robin

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Tu mets tes 3 requetes (parce qu'il y en a bien 3 ) dans un shaker et tu secoue bien fort.

    Tu en ressortiras probablement quelque chose du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT MAX(SommeDeQuantité) AS [Quantité Max], Désignation
    FROM (
        SELECT Sum(Part_used.Quantité) AS SommeDeQuantité, Pièces.Désignation
        FROM Pièces INNER JOIN Part_used ON Pièces.Réf_Pièce = Part_used.Ref_pièces
        GROUP BY Pièces.Désignation;
    )
    GROUP BY Désignation
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse rapide.

    La requête fonctionne mais me renvoie la somme des quantités de chaque pièce, pas juste la somme des quantités la plus élevée comme avec mes 3 requêtes En fait on dirait que le MAX n'est pas pris en compte.

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    ok, j'avais mal compris, c'est la max par pièce que j'ai fait.

    Pour ce que tu veux, effectivement, Access étant quand même assez limité niveau SQL, je ne vois pas de solution comme ça, à part les 2 requetes (ou alors avoir la première, 2 fois en sous requetes, mais c'est pas top niveau optimisation)
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 652
    Points : 14 631
    Points
    14 631
    Par défaut
    Bonjour,
    On me demande alors d'afficher la désignation et la quantité max de la/des pièce(s) de rechange les plus utilisé(es), en une seule requête.
    si j'ai bien compris, la pièce la plus utilisée est bien celle dont la quantité est la plus élévée non ?
    Cette requète te donnera la somme par pièce triée par la quantité la plus élévée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Sum(Part_used.Quantité) AS SommeDeQuantité, Pièces.Désignation
    FROM Pièces INNER JOIN Part_used ON Pièces.Réf_Pièce = Part_used.Ref_pièces
    GROUP BY Pièces.Désignation
    ORDER BY Sum(Part_used.Quantité) desc;
    ou alors il manque une information dans ta demande, dans ce cas montre un exemple du résultat que tu souhaites.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/07/2012, 14h41
  2. cas d'école : Requête combinée avec test sur une colonne
    Par teuzadur dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 23/06/2011, 14h14
  3. Fichier log des requêtes d'une bdd
    Par Sub0 dans le forum Administration
    Réponses: 4
    Dernier message: 22/03/2004, 14h12
  4. [Requête] Faire une requête imbriquée?
    Par sekiryou dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2004, 22h52
  5. Regrouper 3 requêtes dans une seule
    Par LadyArwen dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/06/2003, 09h32

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