Limiter aux derniers résultats

bubbathemaster Messages postés 339 Date d'inscription dimanche 26 janvier 2003 Statut Membre Dernière intervention 25 mars 2009 - 27 déc. 2008 à 18:00
EricSQL Messages postés 33 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 24 février 2011 - 21 janv. 2009 à 20:23
Bonjour,

Considérons 2 tables ultra basiques:
COMMANDES(id, client_id, date, prix)
CLIENTS(client_id,nom)

Si je souhaite savoir combien m'a rapporté le client 3, et combien il a fait de commandes, je fais un truc genre
SELECT COUNT(*), SUM(prix)
WHERE client_id=3

Mais si je veux savoir combien m'a rapporté le client 3 sur ses 100 dernières commandes (ou sur ses x dernières commandes si x < 10, je fais comment?
SELECT COUNT(*), SUM(prix)

WHERE client_id=3
ORDER BY date DESC
LIMIT 100

N'est evidemment pas bon, y'a qu'une seule row de retournée quoi qu'il arive puisqu'il n'y a qu'un seul client 3. Comment faire?

1 réponse

EricSQL Messages postés 33 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 24 février 2011
21 janv. 2009 à 20:23
Bonsoir,

met le LIMIT dans une sous requête, du genre :
Select count(1)
from (
select *
from toto
limit 4
) T
;


/Eric
0
Rejoignez-nous