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 :

Faire un select qui ne retourne que la plus grande date pour chaque enregistrement


Sujet :

Langage SQL

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 50
    Par défaut Faire un select qui ne retourne que la plus grande date pour chaque enregistrement
    Bonjour,


    Un Audit retourne chaque jour les résultats des vendeurs et les enregistres dans une base.


    Si un vendeur n'a pas travaillé, l'audit récupéré et remet en base la derniere journée de vente : donc certains enregistrements se retrouve, mais ne se distingue que par la clef primaire.

    Donc là par exemple :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    id	vendeur	date	CA
    1	Paul	10/01	200
    2	Didier	10/01	221
    3	Alain	10/01	180
    4	Paul	11/01	241
    5	Didier	11/01	136
    6	Alain	11/01	230
    7	Paul	11/01	241
    8	Didier	12/01	116
    9	Alain	12/01	200
    10	Paul	11/01	241
    11	Didier	12/01	116
    12	Alain	13/01	299
    J'aimerais obtenir la liste distinct des vendeurs, la derniere date de ventes et le CA

    Soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id	vendeur	date	CA
    7	Paul	11/01	241
    8	Didier	12/01	116
    12	Alain	13/01	299

    Je pense que c'est pas si difficile mais bon, je vois pas trop comment le faire ? Group by ? Distinct ?


    Merci

  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Il faut utiliser la fonction MAX sur la date avec un GROUP BY qui va bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id, vendeur, MAX(date), CA
    FROM maTable
    GROUP BY id, vendeur, CA
    Cordialement,

    Arkhena

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Bonjour,

    2 solutions selon votre SGBD :
    - utiliser une fonction analytique (keep)
    - faire une sous-requete avec effectivement un group by afin de trouver la date max puis joindre cette sous-requete avec votre table pour retirer la bonne ligne.

  4. #4
    Membre Expert Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Par défaut
    Citation Envoyé par Arkhena Voir le message
    Bonjour,

    Il faut utiliser la fonction MAX sur la date avec un GROUP BY qui va bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id, vendeur, MAX(date), CA
    FROM maTable
    GROUP BY id, vendeur, CA
    Cordialement,

    Arkhena

    Cela ne répond pas a l'objectif voulu...
    Punkoff donne une solution plus appropriée (avec la sous requete)

Discussions similaires

  1. Ne récupérer que les plus grandes dates
    Par david71 dans le forum Requêtes et SQL.
    Réponses: 16
    Dernier message: 28/07/2010, 19h13
  2. Select qui ne retourne rien
    Par hunter001 dans le forum SQL
    Réponses: 2
    Dernier message: 12/06/2007, 12h37
  3. Faire un Select qui retourne dans un certain ordre
    Par Rodie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/01/2007, 23h29
  4. faire une requete qui ne sort que les valeurs d'un champ coché
    Par joseph.breham dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 13/12/2006, 17h01
  5. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 08/08/2005, 00h04

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