Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/12/2011, 16:05
CapLurker
 
Fecha de Ingreso: diciembre-2011
Mensajes: 5
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Curioso Problema(¿SQL puede hacerlo?)

Lo cierto es que nos da error de sintaxis:
La tabla se llama EVENT_LOG, y los campos son:
EVENT_TIME para la hora, formato 120023, para las 12 horas, cero minutos, veintitrés segundos.
EVENT_DATE para la fecha, formato 01112011, para el uno de noviembre de 2011.
USER_ID, para el id del usuario.
Llevamos varias horas intentando sacar algo, pero siempre nos da error.
Nos encantaría trabajar bajo MySQL o Posgres, pero estamos bajo Access 2003, por cuestiones de requisitos de escenario, y tampoco podemos insertar los datos de DATE y TIME de otra forma.
El código es el siguiente:



SELECT
h.EVENT_DATE,
h.USER_ID,
min(hem.hora) AS 'entrada mañana',
max(hsm.hora) AS 'salida mañana',
min(het.hora) AS 'entrada tarde',
max(hst.hora) AS 'salida tarde'
FROM EVENT_LOG h
LEFT JOIN h hem ON h.USER_ID = hem.USER_ID AND hem.hora < 090000
LEFT JOIN h hsm ON h.USER_ID = hsm.USER_ID AND hsm.hora BETWEEN 090001 AND 150000
LEFT JOIN h het ON h.USER_ID = het.USER_ID AND het.hora BETWEEN 150001 AND 160000
LEFT JOIN h hst ON h.USER_ID = hst.USER_ID AND hst.hora > 160001
WHERE EVENT_LOG.EVENT_DATE = 01112011
GROUP BY USER_ID,EVENTLOG_TBL. EVENT_DATE;

PD: Sería la leche convertir el DATE en formato fecha y el TIME en formato hora, pero contando en que no sacamos esto, ya es complicada la conversión.