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 :

Récupérer le statut des cmd avec la date la plus récente


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut Récupérer le statut des cmd avec la date la plus récente
    bonjour, je bloque sur une requete vraiment bete,

    voilà j'ai une table historique (id_history,id_order,id_order_state,date_added)

    je voudrait récupérer le id_order_state qui a la date la plus récente par order,

    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT max(date_adde), id_order,id_order_state FROM historique group by id_order
    seulement il me retourne un id_order_state qui ne correspond pas à la ligne du max(date_adde)

    en gros la vraie ligne serait
    ---------------------------------------
    id_order--id_order_state--date--
    --------------------------------------
    1-----------3----------2008-10-10


    et il me sort
    ---------------------------------------
    id_order--id_order_state--date--
    --------------------------------------
    1-----------6----------2008-10-10


    bizarre

    est ce que quelqu'un peut m'aider ?
    merci

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT h.date_adde, h.h.id_order,id_order_state 
    FROM historique h 
    WHERE  h.date_adde=(SELECT MAX(h2.date_adde) FROM historique h2 
                                   WHERE h2.id_order=h.id_order)
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Merci tu me sauves , mais y'a pas plus simple ? sans sous requete ?

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    C'est un cas d'école où je ne saurais faire sans sous-requête.
    Si tu veux le plus récent d'un seul, tu peux t'en tirer avec un ORDER BY DESC et LIMIT 1, mais vu que tu veux du collectif, je ne vois pas comment faire autrement.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonjour,

    A maysa, non ce n'est pas bizarre
    d'ailleurs la requête que tu proposes ne passerais pas sur un autre SGBD
    tu groupes par id_order et tu prends le max de la date, par contre tu ne precises pas quel id_order_state choisir... or ce n'est pas au SGBD de faire le choix. MySQL va en prendre un aléatoirement mais avec d'autres SGBD tu auras une belle erreur

    c'est pour cela que tu es obligé de passer par une sous requête

    A+

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Citation Envoyé par Cybher Voir le message
    bonjour,

    A maysa, non ce n'est pas bizarre
    d'ailleurs la requête que tu proposes ne passerais pas sur un autre SGBD
    tu groupes par id_order et tu prends le max de la date, par contre tu ne precises pas quel id_order_state choisir... or ce n'est pas au SGBD de faire le choix. MySQL va en prendre un aléatoirement mais avec d'autres SGBD tu auras une belle erreur

    c'est pour cela que tu es obligé de passer par une sous requête

    A+
    Bonjour en fait, non car je ne connais pas id_order_state et c'est ce que je veux récupérer justement , je veux savoir quel dernier statut à la commande et pour cela je dois bien grouper pour l'avoir pour toutes les commandes.
    Merci, cette requete fonctionne bien..

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

Discussions similaires

  1. Réponses: 22
    Dernier message: 08/01/2018, 14h54
  2. Trouver les enregistrements avec les dates les plus récentes
    Par fullmetalalchemiste dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2012, 10h05
  3. Réponses: 10
    Dernier message: 22/07/2010, 10h20
  4. Récupérer la liste des tables avec HSQLDB
    Par Kerod dans le forum JDBC
    Réponses: 1
    Dernier message: 23/02/2009, 17h48

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