Otra forma para obtener este resultado sería así:
Código MySQL:
Ver originalmysql
> SELECT c.ort
, c.nombre
, c.apellidos
, e.estado
, e.fecha
FROM -> clientes C
-> ON T.id_estado
= E.id_estado
AND T.max_fecha
= E.fecha
; +------+--------+-----------+---------+------------+
| ort | nombre | apellidos | estado | fecha |
+------+--------+-----------+---------+------------+
| 1 | ana | martin | cerrada | 2012-01-29 |
+------+--------+-----------+---------+------------+
El truco está en la subconsulta del segundo INNER JOIN, obtienes la MAX(FECHA) para cada estado y la utilizas para filtrar la información... Haz la prueba, tanto la consulta de gnzsoloyo como la mía deberían de funcionar.
Saludos
Leo.