PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 27/06/2011 02:30:37

zied
Membre

Requête pour avoir la dernière maj d'une tache dans une table unique

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 sad

Merci

Dernière modification par zied (27/06/2011 02:31:11)

Hors ligne

#2 27/06/2011 07:49:25

gleu
Administrateur

Re : Requête pour avoir la dernière maj d'une tache dans une table unique

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

#3 27/06/2011 11:34:34

zied
Membre

Re : Requête pour avoir la dernière maj d'une tache dans une table unique

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

#4 27/06/2011 14:05:21

arthurr
Membre

Re : Requête pour avoir la dernière maj d'une tache dans une table unique

select id_tache, max(date_maj) from latable group by id_tache;

Hors ligne

#5 27/06/2011 23:59:09

zied
Membre

Re : Requête pour avoir la dernière maj d'une tache dans une table unique

arthurr a écrit :

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

#6 28/06/2011 21:46:00

gleu
Administrateur

Re : Requête pour avoir la dernière maj d'une tache dans une table unique

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

Pied de page des forums