Vous n'êtes pas identifié(e).
J'ai une table qui permets de gérer l’historique des maj taches d'un projets.
La structure de la table est la suivante
(num_inc, id_tache, contenue_tache,..., date_maj)
Les données exp :
(10, 102, expédier le colis par DHL,..., 02/02/2011)
(15, 102, expédier le colis par UPS,..., 15/02/2011)
(29,102, remettre le colis à mr duond pour le remettre en main propre,..., 17/02/2011)
Je veux faire une requête qui permet de récupérer la dernière maj de ma tache avec l'id 102. Il s'agit donc de la dernière ligne.
Ma question est surement bête mais elle m'échappe
Merci
Dernière modification par zied (27/06/2011 02:31:11)
Hors ligne
SELECT * FROM la_table WHERE id_tache=la_valeur ORDER BY date_maj DESC LIMIT 1
en remplaçant la_table par le nom de la table et la_valeur par l'id recherché
Guillaume.
Hors ligne
Merci mais je pense avoir mal formulé ma question
Je veux récupérer les dernières maj de chaque tache et non pas une seule tache particulière.
Encore merci
Hors ligne
select id_tache, max(date_maj) from latable group by id_tache;
Hors ligne
select id_tache, max(date_maj) from latable group by id_tache;
Merci mais ça ne réponds pas à ma question car j'ai besoin d'afficher tous les champs.
Quand j’étends ma requête à tous les champs en les rajoutant dans la clause group by ça me retourne tous les enregistrements de chaque tache.
Dernière modification par zied (28/06/2011 00:02:23)
Hors ligne
Il est toujours possible de faire un :
SELECT latable.* FROM latable, (select id_tache, max(date_maj) from latable group by id_tache) AS tmp WHERE tmp.id_tache=latable.id_tache AND tmp.date_maj=latable.date_maj
Il y a certainement mieux...
Guillaume.
Hors ligne