A Prim Posté 11 Août 2005 Partager Posté 11 Août 2005 Bonjour, J'ai raté un épisode, soit une table avec 2 champs : - categorie : varchar(40) - top_chrono : datetime Contenant : 'categorie 1' - '2005-08-08 18:12:40' 'categorie 2' - '2005-08-08 18:32:45' 'categorie 1' - '2005-08-08 18:32:25' 'categorie 1' - '2005-08-08 18:32:11' 'categorie 2' - '2005-08-08 18:12:55' Le résultat désiré : categorie top_chrono categorie 1 2005-08-08 18:32:25 categorie 2 2005-08-08 18:32:45 Eh bien, je n'y arrive pas : SELECT categorie, top_chrono FROM la_table WHERE top_chrono ='Ici je veux la valeur la + récente de la catégorie' GROUP BY categorie ORDER BY categorie. Une petite suggestion, merci par avance. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 11 Août 2005 Partager Posté 11 Août 2005 Salut Essaye : SELECT categorie, max(top_chrono) AS plus_recent FROM la_table GROUP BY categorie ORDER BY categorie Lien vers le commentaire Partager sur d’autres sites More sharing options...
A Prim Posté 11 Août 2005 Auteur Partager Posté 11 Août 2005 Merci pour la réponse, Mais j'ai voulu trop simplifier pour poser ma question : En fait ma table est constituée ainsi : categorie - top_chrono - champ 2 - champ 3 - etc et avec ce Select, j'obtiens bien le top_chrono le plus récent de la catégorie mais les valeurs champs 2 - champ 3 - etc ne suivent pas la ligne retournée ! Etonnant... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 11 Août 2005 Partager Posté 11 Août 2005 ah bah oui ils prendront la première valeur trouvée je crois.. SELECT categorie, top_chrono, autrechamp FROM la_table group by categorie ORDER BY categorie, top_chrono DESC ça marche pas ça ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
A Prim Posté 11 Août 2005 Auteur Partager Posté 11 Août 2005 Eh bien non... et du coté des sous-select non plus dans le genre à peu près...: SELECT categorie, top_chrono, autrechamp FROM la_table WHERE top_chrono=(SELECT MAX(top_chrono) FROM la_table) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 11 Août 2005 Partager Posté 11 Août 2005 Dans ta sous requète il te faut regrouper par catégorie quand même, sinon elle est pas correcte ! SELECT categorie, top_chrono, autrechamp FROM la_table WHERE top_chrono=(SELECT MAX(top_chrono) FROM la_table GROUP BY categorie) Mais bon ça me semble un peu lourd de faire une sous requète.. En même temps jsuis un peu fatigué, j'ai plus les yeux en face des trous, donc peut-être que quelqu'un pourra mieux t'aider Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant