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 :

Sélection de la derniere commande


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Sélection de la derniere commande
    Hello,

    Je dispose d'une table COMMANDE dans laquelle j'ai les champs suivants :

    • ID

    • CLIENT

    • DATE

    • MONTANT


    Cette table reprend toutes les commandes, càd l'historique compris.
    J'aimerais composer une requête SQL qui m'affiche un tableau ne reprenant que la dernière commande de chaque client.
    Exemple :

    1 --- ClientA --- 17/07/2003 --- 2250
    2 --- CLientB --- 15/06/2003 --- 3345
    3 --- ClientC --- 17/08/2003 --- 1245
    etc.

    J'essaye un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM COMMANDE WHERE (DATE = (SELECT MAX(DATE) FROM COMMANDE))
    Mais bien sûr...ça marche pas...il ne prend que les clients dont la date est correspond à la MAX date qu'il a trouvé dans la table.

    Thanks pour votre aide,
    Pizza

  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
    Essaie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select *
    from COMMANDE
    group by CLIENT
    having DATE=max(DATE)
    sinon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select *
    from COMMANDE A
    where DATE=(select max(DATE) from COMMANDE B where A.CLIENT=B.CLIENT)
    NB : crée un index sur CLIENT si tu veux que ce soit plus rapide et ce quelque soit la méthode
    MashiMaro

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

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Hello Ricou57,

    Thanks pour ta réponse.

    La première requête ne marche pas car Access refuse que l'on fasse un SELECT * avec un GROUP BY apparement.

    La seconde par contre fonctionne nickel.

    Encore merci,
    Pizza

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour la réponse,
    la deuxième requête fonctionne a merveille pour un autre cas,

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

Discussions similaires

  1. Sélection des numéros de commandes
    Par tunis71187 dans le forum SQL
    Réponses: 7
    Dernier message: 12/02/2011, 14h04
  2. Sélection des 7 derniers jours sur une table de faits
    Par Fatah93 dans le forum SAS Base
    Réponses: 4
    Dernier message: 27/04/2009, 13h48
  3. Sélection des 5 derniers par catégorie
    Par Finality dans le forum Langage SQL
    Réponses: 8
    Dernier message: 24/04/2009, 21h06
  4. requête pour derniere commande
    Par Stéph utilisateur d'acces dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/12/2008, 15h49
  5. [SQL Server] Pb Date et Montant derniere commande
    Par marman dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/10/2006, 19h21

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