Tri requête SQL

flofefe Messages postés 30 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 4 février 2007 - 4 févr. 2007 à 08:37
flofefe Messages postés 30 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 4 février 2007 - 4 févr. 2007 à 11:27
Bonjour à tous

J'ai un p'tit problème de requête . Voilà le sujet
J'ai une table comportant 3 champs
champ 1 : clef
champ 2 : nom
champ 3 : valeur quelconque
J'aimerais pouvoir trier les enregistrements par nom , mais en ne retenant que les x plus grandes valeurs quelconques pour chaque nom

Merci de votre aide A+

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 févr. 2007 à 09:42
utilise l'instruction ORDER BY en fin de ta requête pour trier selon les champs que tu lui donne.
0
flofefe Messages postés 30 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 4 février 2007
4 févr. 2007 à 09:54
Pour order by ok pas de problème mais pour ne retenir que les x premières valeurs de chaque nom ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 févr. 2007 à 10:29
ben une fois que tu les a classé, c'est à toi de ne lire que les enregistrements qui t'interesse : soit par une clause WHERE afin de spécifier une limite et ainsi obtenir qu'une requête contenant exactement le nombre de lignes que tu veux, soit en limitant ta fonction de lecture du recordset au nombres d'enregistrements voulus.
0
flofefe Messages postés 30 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 4 février 2007
4 févr. 2007 à 10:50
Je ne peux pas me servir de la clause WHERE ne connaissant pas les limites.J'aimerais n'avoir que les 2 plus grandes valeurs pour chaque nom  par exemple,mais sans connaitre ces valeurs
De plus comme c'est pour essayer de dépanner un ami qui ne programme pas en VB ,j'aimerais extraire qu'avec une requête.Si cétait pour moi , avec un RECORDSET j'aurais pas de problème.
Pour essayer d'etre plus clair imaginons 6 enregistrements(clef-nom-valeur)
1 - A - 10
2 - B - 2
3 - B - 8
4 - A - 15
5 - B - 20
6 - A - 13
j'aimerais en retour
4 - A - 15
6 - A - 13
5 - B - 20
3 - B - 8

Merci de ton aide
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
4 févr. 2007 à 11:10
Ben je crains que tu n'ai pas vraiment le choix  :
Tu fais ta première requête avec le tri, puis tu fais une deuxième requête avec la clause where, ce qui donne un truc du genre :
WHERE (Nom = 'A' AND Note >= 13) OR (Nom = 'B' AND Note >= 8)
0
flofefe Messages postés 30 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 4 février 2007
4 févr. 2007 à 11:27
J'espérais qu'avec des ORDER BY , GROUP BY et TOP tout ca mis dans le bon ordre on pouvait faire quelque chose , mais bon si c'est pas possible .
Merci pour ton aide en tout cas et bon dimanche .
0
Rejoignez-nous