Sql function MAX

Résolu
cs_guytwo Messages postés 4 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 19 avril 2012 - 17 avril 2012 à 12:49
tri_yann Messages postés 124 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 19 septembre 2013 - 19 avril 2012 à 22:16
Bonjour,

j'ai les donnees suivantes dans une table

AC , 01/01/2012 , 3 , 3333
AC , 02/01/2012 , 2 , 2222
AC , 03/01/2012 , 1 , 1111

je voudrais récupérer toutes les infos de la ligne ou la date est la plus grande (max) en une seule requete.

Merci beaucoup, cordialement
Guytwo

8 réponses

tri_yann Messages postés 124 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 19 septembre 2013 3
17 avril 2012 à 19:06
Bonjour,

Il faut d'abord chercher les éléments qui t'intéresse dans une sous requête et l'insérer dans la requête principale

Select A.*
FROM Table A INNER JOIN
(Select Col1, Max(Date) as Date from Table group by Col1) B --Sélection des éléments
ON A.Col1 B.Col1 and A.Date B.Date


Yann
3
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
17 avril 2012 à 13:26
Voila comme ca cela devrait fonctionner,

select * from NomDeTaTable where NomDeTonChampDate = (select max(NomDeTonChampDate) from NomDeTaTable)



Bonne journée


Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
0
cs_guytwo Messages postés 4 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 19 avril 2012
17 avril 2012 à 15:26
Bonjour

En réalité, j'ai mal posé mon problème,

A , 01/01/2012 , 3 , 3333
A , 02/01/2012 , 2 , 2222
A , 03/01/2012 , 1 , 1111
C , 04/01/2012 , 3 , 6666
C , 05/01/2012 , 2 , 5555
C , 06/01/2012 , 1 , 4444

je voudrais comme résultat uniquement les lignes 3 et 6, car ta requete ne retourne qu'une ligne (le max)

Merci
Guytwo
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
17 avril 2012 à 16:18
Salut,

regarde du côté du GROUP BY

bon SQL
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9
17 avril 2012 à 16:38
le group by ne va rien arranger,

Si c'est les deux plus grande ceci fonctionne

select * from NomDeTaTable 
where NomDeTonChampDate = (select max(NomDeTonChampDate) from NomDeTaTable)
or NomDeTonChampDate = (select max(NomDeTonChampDate) 
from NomDeTaTable 
where NomDeTonChampDate <> (select max(NomDeTonChampDate) from NomDeTaTable)
)


Bonne journée



Faites simple, aussi simple que possible, mais pas simpliste.
A. Einstein.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
17 avril 2012 à 17:01
En quoi ceci ne fait pas le job :
SELECT `code`, MAX(`date`) FROM `table` GROUP BY `code`;

?
0
cs_guytwo Messages postés 4 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 19 avril 2012
19 avril 2012 à 09:16
un grand merci au breton Tri Yann (nantais ?!)
0
tri_yann Messages postés 124 Date d'inscription mercredi 23 novembre 2005 Statut Membre Dernière intervention 19 septembre 2013 3
19 avril 2012 à 22:16
Bonjour, guytwo. Tri_Yann ce n'est qu'un pseudo, du breton je n'ai gardé que le mauvais caractère.

PS : La photo aussi est un pseudo.

Merci pour ton commentaire
Bon courage

Yann
0
Rejoignez-nous