Bonjour à tous,
je veux sélectionner le statut par candidat correspondant à la plus grande date de mon jeu d'enregistrements.
Ainsi j'ai le candidat 172 avec 3 enregistrements:
num - statut - date
11637 - 8 - 20080205
23657 - 9 - 20081030
26580 - 7 - 20080428
Je veux récupérer pour ce candidat le statut 9, j'y arrive aujourd'hui en effectuant plusieurs tables temporaires successives: sélection pour chaque candidat de la plus grande date, puis récupération du statut par lien avec la table initiale sur le num_candidat et sur la date.
Je voulais simplifier et effectuer cette sélection dans une seule requête:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CREATE TEMPORARY TABLE temp_date_seul AS SELECT num_candidat,MAX(date) as date_max FROM temp_statut GROUP BY num_candidat CREATE TEMPORARY TABLE temp_statut2 AS SELECT ts.num_candidat,ts.statut FROM temp_date_seul tds INNER JOIN temp_statut ts ON ts.num_candidat = tds.num_candidat AND ts.date=tds.date_max GROUP BY num_candidat
Mais cette requête me retourne le statut 8 associé au candidat 172. Quelqu'un sait-il s'il y a un moyen de tout faire en une seule requête?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT num_candidat, statut FROM temp_statut GROUP BY num_candidat HAVING MAX( date )
Merci d'avance pour votre aide
Partager