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 :
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
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 ;
exp de retour :
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`
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.
Partager