Quedé en las mismas

necesito una explicación con peras y manzanas
Comencemos otra vez desde el principio: ¿Qué registros son los que se tienen que mostrar como resultado? Es decir, tienes 8 registros de ejemplo... ¿cuántos y cuáles son los que necesitas obtener como salida?
De primera vista dices que necesitas la información del último día que trabajo correcto??? entonces descartamos los registros para la fecha
2010-08-30
Ahora, a partir de los 4 registros que existen para la fecha
2010-09-30 ¿cuáles son los que te interesan?
En cuanto a la consulta que tienes, al utilizar la función MAX en tu consulta, es obvio que te regrese
2010-09-30 16:37:19 ya que esta es mayor que
2010-09-30 09:01:09
Tratando de jugar al adivino (porque realmente estoy dando palos de ciego con tu explicación) veamos este script:
Código MySQL:
Ver original+------+------------+---------------------+--------+
| id | id_usuario | fecha | estado |
+------+------------+---------------------+--------+
| 1 | 2 | 2010-08-30 09:00:39 | 0 |
| 9 | 2 | 2010-08-30 14:03:31 | 1 |
| 11 | 2 | 2010-08-30 16:30:29 | 0 |
| 44 | 2 | 2010-08-30 19:30:49 | 1 |
| 16 | 2 | 2010-09-30 09:01:09 | 0 |
| 92 | 2 | 2010-09-30 14:02:51 | 1 |
| 49 | 2 | 2010-09-30 16:37:19 | 0 |
| 33 | 2 | 2010-09-30 19:24:29 | 1 |
+------+------------+---------------------+--------+
-> (
-> where id_usuario
= 2) T2
on date(T1.fecha
) = T2.fecha
-> time(T1.fecha
) > '09:00:00' and estado
= 0; +---------------------+
+---------------------+
| 2010-09-30 09:01:09 |
+---------------------+
El inner join sirve para filtrar sólo los registros para la última fecha de trabajo. la parte del min es para obtener la PRIMER fecha de ENTRADA del día 2010-09-30 para el usuario 2 ocurrida después de las 09:00:00.
Repito, si continuas con problemas trata de explicarte un poquito mejor jejeje... básicamente copiaste y pegaste lo mismo que pusiste en tu primer post, trata de explicarlo de una manera diferente.
Saludos
Leo.