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 :

recherche valeur maximale entre deux champs


Sujet :

Langage SQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut recherche valeur maximale entre deux champs
    bonjour,

    voilà j'ai une table Match et une table Team soit :

    Match :
    IDMatch (primary key)
    MatchDate,
    IDTeam1,
    ScoreTeam1,
    IDTeam2,
    ScoreTeam2,
    categorieMatch,

    Team :
    IDTeam (primary key)
    TeamName,

    J'aimerai connaitre le nom de l'équipe (voire l'IDTeam) qui a le score le plus élevé pour chaque match...
    Et je ne vois pas du tout comment faire.. max(scoreTeam1) ??
    Si quelqu'un a une solution...

    Merci beaucoup !

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    je ne suis pas du tout sur mais
    essaye sa

    select idmatch as Equipe1_gagne
    from match
    where scoreteam1>scoreteam2

    UNION

    select idmatch Equipe2_gagne
    from match
    where scoreteam2>scoreteam1;

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Merci de ton aide,

    C'est une idée...mais là je sélectionne l'identifiant du match où le score de l'équipe 1 serait supérieur au score de l'équipe 2 ect... donc avec l'union ça me ressort tous les id des matchs puisqu'il y a forcément un vainqueur..
    Le problème c'est comment récupérer l'idTeam en fonction du résultat, vu que les ID se nomment IDTeam1 et IDTeam2.
    J'espère que ce que je dis est assez compréhensible

  4. #4
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par maysa
    Le problème c'est comment récupérer l'idTeam en fonction du résultat, vu que les ID se nomment IDTeam1 et IDTeam2
    Avec une jointure sur la table Team, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select idmatch, idTeam, TeamName
    from Match, Team
    where IDTeam1 = IDTeam
    and scoreteam1>scoreteam2
    UNION
    select idmatch, idTeam, TeamName
    from match, Team
    where IDTeam2 = IDTeam
    and scoreteam2>scoreteam1;
    PS : effectivement, les matchs nuls ne seront pas considérés, mais tu n'as pas l'air d'en avoir.
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Merci oui effectivement... mais j'étais partie sur une jointure INNER JOIN...
    comme pour retrouver le nom des équipes qui jouaient les matchs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT IFNULL(ScoreTeam1,0) AS ScoreTeam1, IFNULL(ScoreTeam2,0) AS ScoreTeam2, match.IDMatch, MatchDate, team1.TeamName AS equipe1, team2.TeamName AS equipe2, pool.Description
    FROM match
    INNER JOIN team AS team1 ON (matches.IDTeam = team1.IDTeam)
    INNER JOIN team AS team2 ON (matches.IDTeam2 = team2.IDTeam)
    INNER JOIN pool ON (team1.IDPool = pool.IDPool) AND (team2.IDPool = pool.IDPool)
    GROUP BY IDMatch
    PS : il s'agit d'un championnat, Les matches sont des matches de qualifications dont ils ne sont pas nuls.

    En tout cas, merci beaucoup ! ;-)

  6. #6
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par maysa
    Merci oui effectivement... mais j'étais partie sur une jointure INNER JOIN...
    Si ton SGBD te le permet, tu as tout à fait raison. Oracle 8 ne connait pas JOIN ...
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Points : 201
    Points
    201
    Par défaut
    Avec SQL Server ça fonctionne...et Mysql aussi...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/11/2010, 21h02
  2. Réponses: 1
    Dernier message: 02/07/2010, 15h25
  3. Recherche de la valeur maximale d'un champ
    Par doolar dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/04/2008, 11h53
  4. [access] différence entre deux champs
    Par loutente dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/08/2005, 15h57
  5. Choix entre deux champs dans une requete
    Par Pico10 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/07/2005, 15h36

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