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

Langage SQL Discussion :

Problème sur une requête SQL


Sujet :

Langage SQL

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Problème sur une requête SQL
    Bonjour,

    Voici ce que je dois faire:

    Soit le schéma relationnel suivant implémenté sous MySQL :
    - ARTICLES (#NOART, LIBELLE, STOCK, PRIXINVENT)
    - FOURNISSEURS (#NOFOUR, NOMFOUR, ADRFOUR, VILLEFOUR)
    - ACHETER (#NOFOUR, #NOART, PRIXACHAT, DELAI)

    Remarque : Les clés primaires sont préfixées d'une #

    Travail à faire

    Présentez une requête SQL qui affiche le délai moyen pour chaque fournisseur
    proposant au moins 2 articles.

    Je sais extraire le délai moyen par fournisseur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select FOURNISSEURS.NOMFOUR ,avg(ACHETER.DELAI)
    from ACHETER, 
    INNER JOIN FOURNISSEURS
                 ON ACHETER.NOFOUR = FOURNISSEURS.NOFOUR
    Group by FOURNISSEURS.NOFOUR ;
    Je pense que l'extraction de chaque fournisseur proposant au moins 2 articles s'écrit de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    select FOURNISSEURS.NOMFOUR
    from ARTICLES 
    inner join FOURNISSEURS
    on ARTICLES.NOART = FOURNISSEURS.NOFOUR
    group by FOURNISSEURS.NOFOUR
    having count(*) > 2
    Je ne sais pas imbriquer les 2 requêtes pour obtenir ce qui m'est demandé. Je n'ai pas la base de données pour effectuer des tests.

    Merci d'avance.

    Julien.

  2. #2
    Membre actif Avatar de Jihnn
    Inscrit en
    Décembre 2005
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 330
    Points : 273
    Points
    273
    Par défaut
    Allez-y en deux étapes pour créer votre requête :

    1. Sélectionner les fournisseurs proposant au moins deux articles et la moyenne de chaque de ces fournisseurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT F.NOFOUR, AVG(DELAI) AS moyDelai
    FROM ACHETER A
    INNER JOIN FOURNISSEURS F
        ON A.NOFOUR = F.NOFOUR
    GROUP BY F.NOFOUR
    HAVING COUNT(*) >= 2;
    2. Sélectionner la moyenne des moyennes ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT AVG(moyDelai) AS moyDelaiTotal
    FROM
        (
            SELECT F.NOFOUR, AVG(DELAI) AS moyDelai
            FROM ACHETER A
            INNER JOIN FOURNISSEURS F
                ON A.NOFOUR = F.NOFOUR
            GROUP BY F.NOFOUR
            HAVING COUNT(*) >= 2
        ) a;
    Il doit y avoir plusieurs façons pour résoudre ce problème (j'avais notamment pensé à sélectionner seulement les id et utiliser IN, mais je ne sais pas vraiment ce qui est le plus efficace.

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

Discussions similaires

  1. [MySQL] Problème sur une requête SQL
    Par julienmop dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 14/06/2015, 21h47
  2. Probléme sur une requête SQL
    Par ggoncalves dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/10/2012, 15h45
  3. Problème sur une requête SQL
    Par Jezlife dans le forum Bases de données
    Réponses: 8
    Dernier message: 18/03/2012, 10h35
  4. Problème sur une requête SQL (PL/SQL)
    Par goofyrocks dans le forum Langage SQL
    Réponses: 5
    Dernier message: 13/01/2009, 17h33
  5. Problème de SUM sur une requête SQL
    Par Lapicure dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2007, 11h51

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