Bonjour,

J'ai un soucis pour résoudre ma requete.
Il y a deux tables, une table avec une liste de personne et une autre avec des pointages en datetime réalisé au jours le jours.
Je souhaite récupéré le dernier pointage de ce jour, de chaque personne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
SELECT e.id, e.initiale, nom, prenom, e.type, p.datetimepointage
				FROM employer as e
				LEFT JOIN pointage as p ON e.initiale = p.initiale
				WHERE e.type = 1 and
				((DAY(datetimepointage)= '$jour' and
				MONTH(datetimepointage)= '$mois' and
				YEAR(datetimepointage)= '$annee'))
				GROUP BY p.initiale
				ORDER BY p.initiale, datetimepointage
Le problème avec le résultat de ma requete c'est que j'ai le 1er pointage de la journée en cours mais pas le dernier car ORDER doit être après le GROUP donc je ne sais pas trier la colonne datetimepointage pour n'avoir que le dernier pointage.

Autre problème, je souhaiterais voir toute les personne dans ma liste même celle qui n'ont pas pointé ce jour. Si une personne n'a pas encore pointé elle n'est pas présente dans le résultat de ma requete actuelle et je voudrais l'afficher.

Donc pour résumé, je souhaite afficher la liste de toute les personnes avec un e.TYPE = 1 et voir à tous leurs derniers pointage 'datetimepointage' de ce jour.

Comment faire dans ce cas ?

D'avance merci ,

Steph