Bonjour à tous,
Voilà mon problème :
J'ai une table qui contient un enregistrement pour chaque connexion/déconnexion des utilisateurs.
Les champs de cette table, en gros :
source_id (l'id de l'utilisateur)
movement_date (date de connexion)
movement_time (heure de connexion)
movement_type (ici, c'est 7 car je ne veux que les connexions).
Je veux récuperer via une requete sql les utilisateurs qui se sont connectés x fois avec leur date et heure de dernière connexion.
J'ai donc fait la requete (qui fonctionne bien) suivante :
SELECT source_id, count(*) as nb WHERE (movement_type_id='7') GROUP BY source_id having count (*) >'5'
Vous l'aurez compris, ici mon x (nombre de fois que les gens se sont connectés) est égal à 5.
Seulement ça ça me donne seulement ceux l'id de ceux qui se sont connectés x fois mais pas la date ni heure de leur dernière connexion. Alors j'ai modifié ma requête en ça :
SELECT source_id, count(*) as nb, movement_date FROM movements WHERE (movement_type_id='7') GROUP BY source_id, movement_date, movement_time having count (*) >'5'
Mais là, vu qu'il y a plusieurs movement_date, ça ne marche pas. En fait si je mets >'0' à la fin ça me retourne tous ceux qui ne se sont connectés qu'une fois donc je pense que le problème vient du fait que dès que c'est supérieur à 1, il y a au moins 2 résultats pour le champ "movement_date" et du coup ça ne marche pas.
J'aimerais savoir comment récupérer le "movement_date" le plus récent lorsqu'il y en a plusieurs
Merci d'avance à tous !
Partager