flofefe
Messages postés30Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 4 février 2007
-
4 févr. 2007 à 08:37
flofefe
Messages postés30Date d'inscriptionjeudi 6 juillet 2006StatutMembreDerniè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
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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.
flofefe
Messages postés30Date d'inscriptionjeudi 6 juillet 2006StatutMembreDerniè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
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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)
flofefe
Messages postés30Date d'inscriptionjeudi 6 juillet 2006StatutMembreDerniè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 .