Problemme de requete MySql

  • Auteur de la discussion Auteur de la discussion p3kk4
  • Date de début Date de début
Salut,
Voici qq enregistrement

...
ROUCAS Jean 17/02/1982
ROUCAS Jean 19/02/1985
ROUCAS Jean 19/03/1985
POPOL Luc 18/05/1998
POPOL Luc 18/05/1999
...
Voici le résultat d une requete groupé(GROUP BY) par nom et trié(ORDER BY) par date mais je voudrais que le premier resultat de chaque groupe cad : ici,ROUCAS Jean 17/02/1982 et POPOL Luc 18/05/1998.
Comment faire en SQL?

Merci.
 
je suppose qu'il veut la date....

un truc de ce genre ne te suffit pas :
Code:
select nom, prenom, max(date) as max_date
from tatable
group by nom, prenom
order by nom, prenom;

?
 
si tu disais ce que tu veux, ce serait plus simple... parce que ce que je t'ai donné, ça colle parfaitement à ce que j'avais cru comprendre de ton problème.

De même quand tu dis que ça ne "marchent pas", précise en quoi cela ne marche pas, sinon on va pas avancer...
 
Oh, on ne s enerve pas svp!... :o

SELECT Nom, Prenom, DateArriveeLabo
FROM PersonneHisto
WHERE ( DateArriveeLabo <= '2004-08-11' AND DateDepartLabo >= '2004-08-11' )
GROUP BY Nom
ORDER BY DateHisto DESC

Résultat
...
ROUCAS Jean 19/03/1985
POPOL Luc 18/05/1999
...

Et ce meme en changeant DESC par ASC. En fait il faudrait trié le GROUP BY.
 
perso j'avais marqué ça :
SELECT Nom, Prenom, MAX(DateArriveeLabo) as max_date
FROM PersonneHisto
WHERE ( DateArriveeLabo <= '2004-08-11' AND DateDepartLabo >= '2004-08-11' )
GROUP BY Nom, Prenom
ORDER BY Nom, Prenom DESC

Après ton ORDER BY, tu le fais comme tu le sens.
 
PS : d'ailleurs si tu veux la date la plus ancienne au lieu de la plus récente, utilise MIN() au lieu de MAX()...

PS 2 : tout ça est bien entendu expliqué en détail dans la doc officielle, et en français ;)
 
Il faudrait que je récupère la ligne correspondante à la date la plus elevé.
Actuellement Il me prend la ligne avec la plus petite date et il m affiche cette ligne avec le max de la date.
 
je suis désolé, mais je comprends jamais rien dans tes explications :s

Il me prend la ligne avec la plus petite date et il m affiche cette ligne avec le max de la date.

il te prend la plus petite ou la plus grande ??? :|

Essaye de donner des exemples de ce qui est dans la base, de ce que tu veux en résultat, et de ce que la requete te sort actuellement...
 
...
ROUCAS Jean 17/02/1982 Fils1
ROUCAS Jean 19/02/1985 Fils1 Fils2
ROUCAS Jean 19/03/1986 Fils1 Fils2 Fils3
POPOL Luc 18/05/1998 Fils1
POPOL Luc 18/05/1999 Fils1 Fils2
...

Ce que je voudrais :
ROUCAS Jean 19/03/1986 Fils1 Fils2 Fils3
POPOL Luc 18/05/1999 Fils1 Fils2

Ce que j ai actuellement :

ROUCAS Jean 19/03/1986 Fils1
POPOL Luc 18/05/1999 Fils1

Voila!
 
ah bah voilà... donc le problème n'est pas sur la date, mais sur les autres champs.

Donc avec MySQL 4.1.x il te "suffit" de faire un select imbriqué. Avec les autres versions c'est un peu plus sport, et frole plutot la bidouille, comme indiqué dans la doc.
 
Ok merci.
Mais malheureusement j ai une "vieille" version (4.0 :lol: )
Donc ca va etre dur. Tu connaitrai pas une autre solution?
 
Bah si, c'est ce qui est indiqué dans la page que je t'ai donné. Tout est expliqué, et en français.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut