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 :

[Access] Tri limitatif dans une sélection


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    Points : 53
    Points
    53
    Par défaut [Access] Tri limitatif dans une sélection
    Bonjour,

    Je pense que c'est relativement simple mais comme je calle ...

    J'ai une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    id   cycle zone valeur
    1    1     12   3
    2    3     13   1  
    3    1     13   4
    4    2     12   5
    5    2     13   4 
    6    4     12   3
    7    3     12   2
    Je veux obtenir pour chaque zone la valeur correspondante au cycle le plus grand. C'est à dire pour l'exemple précédent je veux ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    id   cycle zone valeur
    2    3     13   1  
    6    4     12   3
    Avez-vous une idée pour faire cela avec une requête ou uns sous-requête sous ACCESS

  2. #2
    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
    Pour trouver ce que tu veux (pour chaque zone la valeur max de cycle), il suffit de faire la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT zone, MAX(cycle)
      FROM MaTable
     GROUP BY zone;
    Pour retrouver les id correspondant à ces couples de valeurs, une solution possible est de faire une jointure entre ta table et la pseudo-table correspondant à la requête précédente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     SELECT T1.id,   T1.cycle, T1.zone, T1.valeur
      FROM MaTable T1, 
          (SELECT zone, MAX(cycle) AS cycle FROM MaTable
            GROUP BY zone) T2
     WHERE T1.cycle = T2.cycle
       AND T1.zone = T2.zone;
    Attention, plusieurs enregistrements peuvent correspondrent à un couple de valeur de ta première requête.
    "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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 94
    Points : 53
    Points
    53
    Par défaut
    Super c'est exactement ça !

    Merci

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

Discussions similaires

  1. Tri alphabetique dans une representation intervallaire
    Par bomber dans le forum Langage SQL
    Réponses: 10
    Dernier message: 18/10/2007, 17h31
  2. Try catch dans une dll - possible ?
    Par Pendary dans le forum C++Builder
    Réponses: 1
    Dernier message: 02/03/2007, 17h48
  3. Réponses: 5
    Dernier message: 12/11/2006, 16h47
  4. [access] fichier particulier dans une table
    Par maxdwarf dans le forum Access
    Réponses: 1
    Dernier message: 02/07/2006, 20h00

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