SQL - consulta "sencilla" sobre dos tablas

 
Vista:

consulta "sencilla" sobre dos tablas

Publicado por juanda (2 intervenciones) el 20/06/2006 17:01:14
Hola tengo una duda q no logro resolver la explico.
Tengo dos tablas una de empleados (tipica) y otra de entras y salidas del trabajo. En la de entrada/salida esta el dni del trabajador q es la clave de la tabla empleados, es decir, hay una relacion de 1 a n.
La consulta q quiero hacer es saber cual fue el ultimo movimiento del trabajador, es decir, si lo ultimo fue q entro o salio. Con esta consulta consigo saber cual fue la ultima
SELECT Max(fecha) as mf, dni FROM accesos GROUP BY dni
El problema es q no puedo saber si ese registro es de entrada y salida porque si agrupo tambien por el campo q indica si es entrada o salida me salen dos registros por empleado y entonces no funciona. La cosa deberia ser algo asi como
SELECT Max(fecha) as mf, dni, acceso FROM accesos GROUP BY dni
Pero como acceso no lo meto en el GROUP BY me jodo.
Si alguien me puede echar una manilla se lo agradeceria.
Gracias por anticipado y perdonar si no me explico bien o me extiendo demasiado. :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta

Publicado por Isaías (5072 intervenciones) el 20/06/2006 18:48:11
¿Lo quieres sacar en una sola instruccion SELECT o puedes hacer combinacion con tablas temporales, o sea, hacer un STORE PROCEDURE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por juanda (2 intervenciones) el 20/06/2006 23:16:02
Estoy trabajando en access el store procedure creo q no se puede usar ahi verdad?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por Isaías (5072 intervenciones) el 21/06/2006 16:57:47
En efecto, en access existen muchas limitaciones en comparacion con un motor de base de datos de tipo transaccional como SQL Server, te sugiero migres a SQL SERVER EXPRESS 2005, es sin costo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:consulta

Publicado por Liliana Sorrentino (426 intervenciones) el 21/06/2006 19:13:48
Hola,
Con el permiso de Isaías, y además de tener en cuenta sus comentarios, te cuento cómo se haría en T-SQL, a lo mejor puede darte una idea para adaptarla a Access si es que no funciona así.
Saludos,
Liliana.

SELECT M.mf, M.dni, A.acceso
FROM
(SELECT Max(fecha) as mf, dni
FROM accesos
GROUP BY dni) M
INNER JOIN accesos A
ON M.dni = A.dni AND M.mf = A.Fecha
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta

Publicado por Isaías (5072 intervenciones) el 20/06/2006 18:48:33
¿Lo quieres sacar en una sola instruccion SELECT o puedes hacer combinacion con tablas temporales, o sea, hacer un STORE PROCEDURE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar