Ver Mensaje Individual
  #6  
Antiguo 20-03-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Reputación: 24
BlueSteel Va por buen camino
Cita:
Empezado por poliburro Ver Mensaje
Ok, lo que necesitamos es ver el movimiento de entrada y salida para cada día de la semana. Sencillo:

Vamos a generar los dominios para cada tipo de evento y para cada día de la semana considerando que en una fecha existen dos movimientos (si existieran más, se tienen que hacer consideraciones adicionales),
así que tomaremos como referencia la fecha



Código SQL [-]
//Para las entradas

Select Hor_Tipo As E, Per_Nr As FichaE,
CONVERT(Char(10), Hor_Fecha, 103) AS FechaE,
CONVERT(Char(8), Hor_Fecha, 108) AS HoraE
From Horario
Where HorTipo = 1

// Para las salidas

Select Hor_Tipo As S, Per_Nr As FichaS,
CONVERT(Char(10), Hor_Fecha, 103) AS FechaS
CONVERT(Char(8), Hor_Fecha, 108) AS HoraS
From Horario
Where HorTipo = 0






Ahora obtenemos el producto de las tablas


Código SQL [-]
Select Entrada.E, Entrada.FichaE, Entrada.FechaE, Entrada.HoraE,
Salida.S, Saalida.FichaS, Entrada.FechaS, Entrada.HoraS
From (
Select Hor_Tipo As E, Per_Nr As FichaE,
CONVERT(Char(10), Hor_Fecha, 103) AS FechaE,
CONVERT(Char(8), Hor_Fecha, 108) AS HoraE
From Horario
Where HorTipo = 1
) As Entrada
Left Join (
Select Hor_Tipo As S, Per_Nr As FichaS,
CONVERT(Char(10), Hor_Fecha, 103) AS FechaS
CONVERT(Char(8), Hor_Fecha, 108) AS HoraS
From Horario
Where HorTipo = 0
) As Salida
On Entrada.FechaE = Salida.FechaS And
Entrada.FichaE = Salida.FichaS






Te preguntarás por que left y no inner bueno, sencillamente por que así detectaras
a quienes registraron su entrada pero no la salida.

Suerte

Ok.. Muchas Gracias... terminando de solucionar unos "cachos" probaré lo que me indicas...

Cita:
Empezado por poliburro Ver Mensaje
Vamos a generar los dominios para cada tipo de evento y para cada día de la semana considerando que en una fecha existen dos movimientos (si existieran más, se tienen que hacer consideraciones adicionales),
Lamentablemente existen más de 2 movimiento por día.. y afecta a un 80 % de las personas que tenemos que marcar tarjeta....
__________________
BlueSteel
Responder Con Cita