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 :

requete AVG, jointure et fonction


Sujet :

Langage SQL

  1. #1
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut requete AVG, jointure et fonction
    Bonjour

    j'ai un petit probleme pour faire une requete et j'espere que vous pourrez m'aider, svp.

    J'ai deux tables :
    MEMBRE (d'un club) et PARTICIPATION où sont enregistrés le classement des membres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MEMBRE (nummembre, nommembre)
    PARTICIPATION (classement, #nummembre)
    Je dois faire une requete SQL pour donner le palmarès des membres du club.
    La requete que j'ai faite, dans un premier temps pour la table PARTICIPATION, et qui m'a l'air juste est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT nummembre,AVG(classement)
    FROM participation
    GROUP BY nummembre
    ORDER BY AVG(classement)
    ;
    Il me reste a faire la jointure et mettre en forme le resultat de la moyenne pour que le nombre obtenu soit entier

    Recap : Le resultat obtenu doit faire apparaitre le nom des membres et leur classement.
    Merci de m'aider
    à bientot
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT p.nummembre,m.nommembre,AVG(p.classement) 
    FROM participation p INNER JOIN membre m ON p.nummembre=m.nummembre
    GROUP BY p.nummembre 
    ORDER BY AVG(p.classement)
    Pour ce qui est de faire afficher un entier, gère ca avec ton interface. Ce n'est pas la tâche du SQL.
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  3. #3
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut Re: requete AVG, jointure et fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT P.nummembre, M.nommembre, AVG(classement)
    FROM Participation P 
    LEFT JOIN Membre M ON M.nummembre=P.nummembre
    GROUP BY P.nummembre, M.nommembre
    ORDER BY AVG(classement)
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  4. #4
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut Re: requete AVG, jointure et fonction
    Citation Envoyé par Keihilin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT P.nummembre, M.nommembre, AVG(classement)
    FROM Participation P 
    LEFT JOIN Membre M ON M.nummembre=P.nummembre
    GROUP BY P.nummembre, M.nommembre
    ORDER BY AVG(classement)
    ah oui, il faut privilégier le LEFT JOIN si l'on veut faire apparaitre ceux qui n'ont jamais été classés !!!...
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    et puis le GROUP BY doit inclure aussi le champ nommembre...
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  6. #6
    Membre actif
    Avatar de MashiMaro
    Profil pro
    Inscrit en
    Février 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 180
    Points : 213
    Points
    213
    Par défaut
    Citation Envoyé par Keihilin
    et puis le GROUP BY doit inclure aussi le champ nommembre...
    Ca dépend du SGBD, si une clé est dans le group by, cela peut suffire. (c'est le cas en T-SQL sous Sybase)
    MashiMaro

    L'homme sage apprend de ses erreurs, l'homme très sage apprend des erreurs des autres.

  7. #7
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Ah oui, peut être sous Sybase (Je travaille dessus en ce moment mais c'est la première fois...)

    Mais sous SQL Server, tu dois le mettre.
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  8. #8
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut RESOLU
    Merci beaucoup...
    Mais je sais pas quelle est la difference entre INNER JOIN et LEFT JOIN (je connaissais pas ce dernier)

    Merci
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 163
    Points : 90
    Points
    90
    Par défaut
    Salut,

    pour répondre à votre question, moi-même j'ai aussi cherché des explications à l'adresse suivante: Les jointures, ou comment
    interroger plusieurs tables
    chez SQL PRO.

    Pense à utiliser le bouton RESOLU en bas et à gauche du forum
    Cordialement

    Fred ;-)

  10. #10
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Points : 20
    Points
    20
    Par défaut
    il me semble judicieux de préciser que
    ne me parait pas tres catholique.

    généralement on utilise
    [code]Group By ...
    Having ...[code]

    [/code]

  11. #11
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par Ricardeau
    il me semble judicieux de préciser que
    ne me parait pas tres catholique.

    généralement on utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Group By ...
    Having ... :wink:
    est parfaitement valide, having introduit une clause restrictive sur le groupe, order by introduit un ordre de tri, il n'y a pas de conflit entre les deux
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  12. #12
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Extrait d'un cours :

    "Noter que si on utilise dans une même requête WHERE, GROUP BY, HAVING et ORDER BY, il faut que ces clauses figurent dans cet ordre"
    Mais je crois que ca depend des environnements...
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

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

Discussions similaires

  1. Problème Requete Multi Jointure + Like
    Par thefutureisnow dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/01/2006, 19h39
  2. requete de jointure sous delphi
    Par kaouther dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/12/2005, 11h22
  3. Requete sélection, Jointure (coup de pouce needed)
    Par Odilon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h48
  4. requete de jointure
    Par linoar dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/05/2005, 15h55
  5. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 14h31

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