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 :

Probleme pour une requete avec MAX


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Probleme pour une requete avec MAX
    Bonjour à tous,
    Alors voila, pour faire simple j'ai une table:
    Id |étapes | Ville
    a | 1 | Paris
    a | 2 | Paris
    a | 3 | Marseille
    b | 1 | St-etienne
    b | 2 | Strasbourg
    Et je veux que pour chaque id(donc ici a et b), il me retourne la ligne où la valeur étapes et la plus haute...


    Et je voudrai qu'il me retourne comme résultat:
    Id |étapes | Ville
    a | 3 | Marseille
    b | 2 | Strasbourg


    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select ID,Ville,MAX(ValeurEtape)
    From Matable
    --> erreur la fonction ne porte pas sur un groupe simple

    et en rajoutant un group by ColonneID,Ville
    -->ça me retourne:
    Id | étapes | Ville
    a | 2 | Paris
    a | 3 | Marseille
    b | 1 | St-etienne
    b | 2 | Strasbourg

    Merci de votre aide

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Bizarre d'utiliser un caractère pour un id mais bon...

    je veux que pour chaque id(donc ici a et b), il me retourne la ligne où la valeur étapes et la plus haute...
    Etape la plus haute par Id :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Id, MAX(étapes) AS EtapeMax
    FROM MaTable
    GROUP BY Id
    Pour récupérer la ville correspondant à ces MAX(étapes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT m.Id, m.étapes, m.Ville
    FROM MaTable AS m
    INNER JOIN (
      SELECT Id, MAX(étapes) AS EtapeMax
      FROM MaTable
      GROUP BY Id
    ) AS tmp ON m.Id = tmp.Id
    WHERE m.étapes = tmp.EtapeMax
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Bizarre d'utiliser un caractère pour un id mais bon...
    Oui c'était pour l'exemple pour être plus clair. Mais ce sont des entiers en réalité ^^.

    Tout d'abord merci de ta réponse.
    Sinon je suis sous oracle, donc j'ai adpaté la reqête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT ma.Id, ma.étapes, ma.Ville
    FROM MaTable  ma
    INNER JOIN (
      SELECT Id, MAX(étapes) EtapeMax
      FROM MaTable
      GROUP BY Id
    )  tmp ON m.Id = tmp.Id
    WHERE ma.étapes = tmp.EtapeMax
    Seulement voila j'ai l'erreur suivante:
    ORA-01722: Nombre non valide.

    Sincerement je vois pas trop ce qui cloche....
    Une idée peut être???

    Thanks!

  4. #4
    Futur Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Désole, problème résolu...

    Je m'était trompé en adaptant l'exemple...(je comparais une chaine de caractère avec un nombre)==> Donc forcément ça marchait moins bien!

    Sinon la requête marche super!


    Merci de ton aide!!!!

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Si vous n'êtes pas sur une version trop ancienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      select id,
             max(etape) as etape,
             max(ville) keep(dense_rank first order by etape desc) as ville
        from MaTable
    group by id
    order by id asc

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

Discussions similaires

  1. Probleme dans une requete avec Fichier Excel
    Par FightinG712 dans le forum QlikView
    Réponses: 10
    Dernier message: 17/05/2013, 17h31
  2. Aide pour une requete avec pattern JpaDao
    Par wsp_ape dans le forum JPA
    Réponses: 1
    Dernier message: 19/06/2011, 10h16
  3. [MySQL] Cherche aide pour une requete avec jointure
    Par nasbe26 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 29/09/2007, 11h44
  4. probleme sur une requete avec DISTINCT
    Par samsso2006 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/05/2007, 14h35
  5. Réponses: 13
    Dernier message: 10/05/2004, 16h49

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