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

Requêtes MySQL Discussion :

Sélection du prix d'achat dernière commande


Sujet :

Requêtes MySQL

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut Sélection du prix d'achat dernière commande
    Bonjour,

    Toujours dans l'espoir de récupérer , pour chaque produit, son prix d'achat lors de sa dernière commande, voici la requête que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT A.cde_prod_comm, A.prix_achat_comm, A.date_comm 
    FROM commandes_tb A, commandes_tb B 
    where (A.cde_prod_comm=B.cde_prod_comm AND A.date_comm = MAX(B.date_comm) )
    Mais j'obtiens toujours le message :

    MySQL a répondu:

    #1111 - Utilisation invalide de la clause GROUP


    Help me, please....

    Christophe

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 290
    Par défaut
    A partir de la version 4.1, tu peux utiliser une sous-requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT A.cde_prod_comm, A.prix_achat_comm, A.date_comm 
    FROM commandes_tb A
    WHERE A.date_comm = (SELECT MAX(B.date_comm) 
     FROM commandes_tb B 
     WHERE A.cde_prod_comm=B.cde_prod_comm)
    Sinon, ça devrait donner ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT A.cde_prod_comm, A.prix_achat_comm, A.date_comm 
    FROM commandes_tb A
      INNER JOIN commandes_tb B on A.cde_prod_comm=B.cde_prod_comm 
    GROUP BY A.cde_prod_comm, A.prix_achat_comm, A.date_comm 
    HAVING A.date_comm = MAX(B.date_comm)

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Merci pour ta réponse...

    Entre-temps, j'avais trouvé cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT cde_prod_comm, prix_achat_comm, date_comm FROM commandes_tb AS c1
    WHERE c1.date_comm = (SELECT max(date_comm) 
                          FROM commandes_tb AS c2
                          WHERE c2.cde_prod_comm = c1.cde_prod_comm )
    GROUP BY c1.cde_prod_comm

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

Discussions similaires

  1. afficher dernière commande
    Par Stéph utilisateur d'acces dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/12/2008, 15h47
  2. BDD achats, ventes, commandes et stocks
    Par squinny dans le forum Modélisation
    Réponses: 3
    Dernier message: 27/10/2007, 20h13
  3. Afficher la date de la dernière commande
    Par soso78 dans le forum Access
    Réponses: 6
    Dernier message: 07/03/2007, 14h46
  4. Réponses: 1
    Dernier message: 20/02/2007, 10h23
  5. Réponses: 7
    Dernier message: 02/03/2006, 14h58

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