bonjour j'ai un souci pour tirer une donnée

concrètement c'est quoi???

j'ai une bdd Mysql avec des id des l'état des pièces générées et la date d'enregistrment. l'état varie de nt(pièce entrée mais non traitée),puis a, b, c et d(les statuts de traitement). la pièce ayant pour id 10 lorsqu'elle est traitée passe par l'état a puis b puis c ainsi de suite.

id etat date
5 nt 2011-10-1010:28:43
2 a 2011-01-23 13:49:12
2 b 2011-05-12 08:32:24
10 a 2012-01-01 12:12:45
10 b 2012-01-20 17:30:34
10 c 2012-02-29 15:54:05
2 c 2011-11-02 10:12:25

L'idée c'est de prendre toutes qui ont été traitée,et leur statut actuel avec date, donc d'avoir:
2 c 2011-11-02 10:12:25
10 c 2012-02-29 15:54:05
Quand j'essaie j'ai plutôt ça comme réponse

id   etat   date 
2 a 2011-11-02 10:12:25
10 a 2012-02-29 15:54:05
il prend les premiers états mais les bonnes dates.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select ID , ETAT,MAX(date)
from table
where ID 
in
(select ID  from table where  ETAT="a")
GROUP BY ID;
jai aussi fait ca mais sur mysql browser ca ne marche pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
select ID , ETAT,DATE
from table
where (ID )
in
(select ID  from table where  ETAT="a")
AND (date) IN (select MAX(DATE) from table group by ID);