Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2013, 02:00
roberte_79
 
Fecha de Ingreso: octubre-2013
Mensajes: 3
Antigüedad: 11 años
Puntos: 0
Consulta agrupada de eventos de tabla

Hola:

Tengo una pequeña pregunta o gran duda según se mire. Imaginar que tenemos
una tabla de entradas y salidas de personas de un centro de trabajo o coches de
un garaje (mi caso real es otro pero la simplificación es suficiente). Imaginar que
la tabla se denomina TablaAccesos cuya estructura y datos es tal que así:

Código:
Nombre	Evento	Hora
------	------	-----
Pepe	0	9:35
Pepe	1	17:21
Juan	0	8:32
Juan	1	16:56
Tomas	0	10:00
donde el indicador Evento es igual a 0 cuando la persona entra, mientras que
Evento es igual a 1 cuando la persona abandona el edificio. Por simplicidad,
imaginar que para cada nombre sólo hay un evento de entrada y quizás uno (y
sólo uno) de salida.

Me gustaría realizar una única consulta SQL en el que se refleje cuando ha
entrado y cuando ha salido cada persona del edificio. Si no ha salido del
edificio (es decir, no hay evento de salida) quiero que el campo esté vacío, es
decir, el resultado de la consulta debería ser:

Código:
Nombre	Entrada	Salida
------	-------	------
Pepe	9:35	17:21
Juan	8:32	16:56
Tomas	10:00
He intentado construir la consulta de mil formas usando INNER JOIN, RIGHT JOIN,
LEFT JOIN, por ejemplo,

Código:
SELECT
	TblEntradas.Nombre AS Nombre,
	TblEntradas.Hora AS Entrada,
	TblSalidas.Hora AS Salida
FROM
	TablaAccesos AS TblEntradas
RIGHT JOIN
	TablaAccesos AS TblSalidas
ON
	TblEntradas.Nombre=TblSalidas.Nombre
WHERE
	TblEntradas.Evento=0 AND TblSalidas.Evento=1
y el resultado siempre es el mismo: no incluye el elemento que no tiene evento
de salida, es decir:

Código:
Nombre	Entrada	Salida
------	-------	------
Pepe	9:35	17:21
Juan	8:32	16:56
¿Alguien se le ocurre como se podría hacer la consulta para que incluya TODOS
los nombres?

Un saludo y gracias por adelantado