SQL para registros anteriores

Hola de nuevo Manuel, primero gracias por leerme.
A ver si puedes ayudarme, me he bloqueado totalmente.
Es referente a lo del control de asistencia. Te pongo un par de ejemplos aunque los nombres de campos no son los reales.
Tengo una tabla que contiene más o menos esto:
Id - idname - hora
--------------------------
1 - 2 - 19/11/2010 7:24
2 - 1 - 19/11/2010 7:25
3 - 2 - 19/11/2010 12:31
4 - 3 - 19/11/2010 12:35
5 - 1 - 19/11/2010 14:14
6 - 2 - 19/11/2010 15:02
7 - 3 - 19/11/2010 17:45
8 - 2 - 19/11/2010 19:55
9 - 2 - 20/11/2010 7:13
10 - 2 - 20/11/2010 9:25
...
¿Puedo, mediante sql, generar una consulta que me resulte algo así?:
FECHA - IDNAME - TIEMPO
---------------------------------
19/11/2010 - 1 - 06:49
19/11/2010 - 2 - 08:00
19/11/2010 - 3 - 05:10
20/11/2010 - 2 - 02:12
Probé con dos sql's, una sobre la tabla y otra sobre la primera consulta, pero usaba "SELECT TOP 1..." y "ORDER BY... DESC" y claro, cuando un IDNAME tiene más de un movimiento (entrada+salida) al día, la fecha de salida obtenida siempre era la última de ese día.
No se si tienes alguna idea tú me me ayude...
Gracias de antemano de todas formas.

1 respuesta

Respuesta
1
La tabla inicial le he puesto el nombre Tabla1
2 Consultas:
consIdHoras_2
Código:
SELECT Tabla1.IDNAME, Format([HORA],"dd/mm/yyyy") AS FECHA, Min(Format([HORA],"Short Time")) AS HoraInicio, Max(Format([HORA],"Short Time")) AS HoraFinal
FROM Tabla1
GROUP BY Tabla1.IDNAME, Format([HORA],"dd/mm/yyyy");

ConsIdHoras
Código:
SELECT consIdHoras_2.FECHA, consIdHoras_2.IDNAME, Format(TimeValue([HoraFinal])-TimeValue([HoraInicio]),"Short Time") AS TIEMPO
FROM consIdHoras_2;

Cambia el nombre de la tabla1 por el que tengas tú. Si tienes problemas me lo indicas y cuelgo el ejemplo en mi página.
Manuel, fantástica tu propuesta. No me ha resuelto el problema (el original) porque he decidido darle un cambio a la forma de tratar esos datos, pero lo he probado en la bd que tengo de copia con el formato antiguo y hace exactamente lo que necesitaba (solo un detallín en la sintaxis, nada que no se pueda resolver).
Aún así, he adaptado lo que me has dejado (no hay mal que por bien no venga...) a otra sección de mi pequeña bd de gestión y me has resuelto OTRO problema que tenía.
Pero sobretodo, y por lo que debería haber puntuaciones de 10 estrellas, me has enseñado un poco (mucho) de sql.
Gracias Manuel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas