Bonjour,

Je suis presque sûr qu'on ne peut pas le faire mais avant de passer à du code php je préfère demander si quelqu'un aurait déjà fait un truc du genre.

Bon alors j'ai une table comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
CREATE TABLE IF NOT EXISTS `photocopieur_releves` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_article` int(11) NOT NULL,
  `quantite` int(11) NOT NULL,
  `date_releve` date NOT NULL,
  `date_enregistrement` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;
J'ai une requête qui renvoie ce que je veux mais sans limite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT date_releve, id_article, MAX(quantite)
FROM photocopieur_releves
GROUP BY `date_releve` , `id_article`
exp de retour :
Code x : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
date_releve 	id_article 	MAX(quantite)
2014-09-08 	24 	2123
2014-09-08 	25 	1184
2014-09-09 	24 	2420
2014-09-09 	25 	1200
2014-09-10 	24 	2400
2014-09-10 	25 	1254
2014-09-11 	24 	2500
2014-09-11 	25 	1300

Du coup j'ai des groupes basé sur les couples (date_releve,id_article), c'est exactement ce que je veux à un détail près : je voudrais pouvoir limiter à par exemple 5 le nombre de date_revele total. Le problème c'est que si je utilise la clause LIMIT, j'aurai une limite sur le nombre de ligne total, si je limite via un HAVING count(date_releve) < 5, j'ai une limite sur chaque groupe donc rien à voir vu que sur chaque groupe j'ai forcément qu'une seule date de par mon GROUP BY.

Donc je pense que je vais devoir le faire en php après récupération des données, mais le problème c'est que la page de sortie risque de devenir assez lente si le nombre d'entrée monte pas mal.