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 :

problème max(date) et champs non correspondant


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut problème max(date) et champs non correspondant
    Bonjour, voici mon problème :

    je souhaite récupérer la dernère action d'un utilisateur.

    table :
    id user date action
    1 10 2007-04-16 A
    2 10 2007-04-05 B
    3 10 2007-04-28 E
    4 10 2006-04-13 E

    requête SQL:
    SELECT id, user, max( date ) AS date, action
    FROM test
    WHERE action IN ('A', 'E')
    GROUP BY user

    Cette requête devrait me renvoyer le résultat suivant :
    3 10 2007-04-28 E

    mais elle me renvoie ceci :
    1 10 2007-04-28 A

    C'est à dire que la date est bien la date de la dernière action parmis les actions A et E mais l'action ne correspond pas et l'id non plus (mais ça c'est moins grave).

    Je ne trouve pas de solution, pouvez-vous m'aider ?

  2. #2
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Salut,

    une alternative, si tu souhaites récupérer la dernière action d'un utilisateur donné:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select * from test
    where user = 10
    AND action IN ('A', 'E')
    order by `date` desc
    limit 1
    Petite remarque: ne serait-il pas judicieux d'inclure également l'heure de l'action, au cas où l'utilisateur ferait plusieurs actions sur la même journée ?

  3. #3
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut
    Après une bonne nuit de sommeil et un café, j'ai compris pourquoi il était normale que ma requête ne fonctionne pas. Par contre je n'ai toujours pas la solution.

    Alors, j'ai essayé la tienne et elle marche pas dans tous les cas :

    si tu as plusieurs utilisateurs et que tu souhaites extraire pour chacun d'entre eux la dernière action, avec ta requête il faudrait écrire ceci :

    SELECT id, user, date, action
    FROM test
    WHERE action IN ('A', 'E')
    GROUP BY user
    ORDER BY `date` DESC

    ce qui devrais sortir une ligne par utilisateur avec la dernière date et la dernière action de l'utilisateur : ça ne marche toujours pas...

    une idée ?

  4. #4
    Membre régulier Avatar de sorenson
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 84
    Points
    84
    Par défaut

Discussions similaires

  1. problème avec un formulaire : champ non défini
    Par merlubreizh dans le forum Langage
    Réponses: 5
    Dernier message: 04/02/2008, 15h22
  2. Requête avec max date et champs correspondants
    Par sl1980 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/09/2007, 00h01
  3. [vb.net][LDAP]Problème sur champs non renseignés NULL
    Par JFLESUEUR dans le forum ASP.NET
    Réponses: 2
    Dernier message: 14/12/2006, 16h02
  4. Réponses: 1
    Dernier message: 28/06/2006, 13h31
  5. problème de syntaxe avec champ date
    Par mussara dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 03/02/2006, 16h19

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