Merci pour ta réponse, mais ça ne fonctionne pas. ça me renvoie l'erreur ''Il y a une expression 'Non-group-by' dans la clause select. ''Salut,
Et un simple GROUP BY cle
SELECT CLE,DATSTO,STOCK FROM PUB.STOCKMOIS GROUP BY CLE ORDER BY DATSTO DESC
je crois que oui. Est-ce que tu t'attends à ça :Tu peux nous donner un petit SQL de creation des tables et des donnees afin qu'on puisse tester ?
insert into nomtable (cle,stock,datsto) values ('920230','69','40939');
insert into nomtable (cle,stock,datsto) values ('720230','1523','40939');
insert into nomtable (cle,stock,datsto) values ('888888','69134','40939');
insert into nomtable (cle,stock,datsto) values ('720230','1672','40908');
insert into nomtable (cle,stock,datsto) values ('888888','0','40908');
insert into nomtable (cle,stock,datsto) values ('720230','2','40908');
insert into nomtable (cle,stock,datsto) values ('720230','1667','40908');
insert into nomtable (cle,stock,datsto) values ('720230','0','40908');
insert into nomtable (cle,stock,datsto) values ('888888','0','40908');
insert into nomtable (cle,stock,datsto) values ('720230','1','40908');
insert into nomtable (cle,stock,datsto) values ('720230','1','40908');
insert into nomtable (cle,stock,datsto) values ('888888','0','40908');
insert into nomtable (cle,stock,datsto) values ('888888','0','40908');
insert into nomtable (cle,stock,datsto) values ('888888','15','40908');
insert into nomtable (cle,stock,datsto) values ('888888','25','40908');
insert into nomtable (cle,stock,datsto) values ('888888','1','40908');
insert into nomtable (cle,stock,datsto) values ('888888','1','40908');
insert into nomtable (cle,stock,datsto) values ('888888','87435','40908');
insert into nomtable (cle,stock,datsto) values ('888888','87454','40908');
insert into nomtable (cle,stock,datsto) values ('920230','74','40908');
insert into nomtable (cle,stock,datsto) values ('920230','74','40908');
insert into nomtable (cle,stock,datsto) values ('720230','1672','40907');
insert into nomtable (cle,stock,datsto) values ('888888','87454','40907');
insert into nomtable (cle,stock,datsto) values ('888888','87654','40907');
insert into nomtable (cle,stock,datsto) values ('720230','1686','40907');
insert into nomtable (cle,stock,datsto) values ('920230','74','40907');
insert into nomtable (cle,stock,datsto) values ('920230','74','40907');
insert into nomtable (cle,stock,datsto) values ('920230','75','40877');
insert into nomtable (cle,stock,datsto) values ('720230','1878','40877');
insert into nomtable (cle,stock,datsto) values ('888888','102490','40877');
insert into nomtable (cle,stock,datsto) values ('920230','89','40847');
insert into nomtable (cle,stock,datsto) values ('720230','2393','40847');
insert into nomtable (cle,stock,datsto) values ('888888','80583','40847');
insert into nomtable (cle,stock,datsto) values ('720230','2','40847');
insert into nomtable (cle,stock,datsto) values ('920230','69','31/01/2012');
insert into nomtable (cle,stock,datsto) values ('720230','1523','31/01/2012');
insert into nomtable (cle,stock,datsto) values ('888888','69134','31/01/2012');
insert into nomtable (cle,stock,datsto) values ('720230','1672','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','0','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','2','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1667','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','0','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','0','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','0','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','0','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','15','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','25','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','1','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','1','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','87435','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','87454','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('920230','74','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('920230','74','31/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1672','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','87454','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('888888','87654','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1686','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('920230','74','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('920230','74','30/12/2011');
insert into nomtable (cle,stock,datsto) values ('920230','75','30/11/2011');
insert into nomtable (cle,stock,datsto) values ('720230','1878','30/11/2011');
insert into nomtable (cle,stock,datsto) values ('888888','102490','30/11/2011');
insert into nomtable (cle,stock,datsto) values ('920230','89','31/10/2011');
insert into nomtable (cle,stock,datsto) values ('720230','2393','31/10/2011');
insert into nomtable (cle,stock,datsto) values ('888888','80583','31/10/2011');
insert into nomtable (cle,stock,datsto) values ('720230','2','31/10/2011');
mysql> SELECT n1.cle, n1.datsto, n1.stock
-> FROM nomtable n1
-> INNER JOIN (
-> SELECT cle, max(stock) as stock
-> FROM nomtable
-> GROUP BY CLE) n2
-> ON n1.cle = n2.cle and n1.stock = n2.stock;
+--------+------------+--------+
| cle | datsto | stock |
+--------+------------+--------+
| 888888 | 2011-11-30 | 102490 |
| 920230 | 2011-10-31 | 89 |
| 720230 | 2011-10-31 | 2393 |
+--------+------------+--------+
3 rows in set (0.00 sec)
Effectivement, le format des dates n'est pas terrible du tout j'ai du tout modifier avant d'inserer
mysql> SELECT n1.cle, n1.datsto, n1.stock
-> FROM nomtable n1
-> INNER JOIN (
-> SELECT cle, max(datsto) as datsto
-> FROM nomtable
-> GROUP BY CLE) n2
-> ON n1.cle = n2.cle and n1.datsto = n2.datsto;
+--------+------------+-------+
| cle | datsto | stock |
+--------+------------+-------+
| 920230 | 2012-01-31 | 69 |
| 720230 | 2012-01-31 | 1523 |
| 888888 | 2012-01-31 | 69134 |
+--------+------------+-------+
3 rows in set (0.00 sec)