elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Mensajes
Páginas: [1]
1  Programación / Bases de Datos / Re: Curioso problema (¿SQL puede hacerlo?) en: 23 Diciembre 2011, 08:31 am
Vamos a probar lo siguente, convirtiendo el time y el date en sus formatos:

SELECT
    h.fecha,
    h.usuario,
    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 horario h
    LEFT JOIN horario hem ON h.usuario = hem.usuario AND hem.hora < time('09:00:00')
    LEFT JOIN horario hsm ON h.usuario = hsm.usuario AND hsm.hora BETWEEN time('09:00:01') AND time('15:00:00')
    LEFT JOIN horario het ON h.usuario = het.usuario AND het.hora BETWEEN time('15:00:01') AND time('16:00:00')
    LEFT JOIN horario hst ON h.usuario = hst.usuario AND hst.hora > time('16:00:01')
WHERE h.fecha = date('2011-01-01')
GROUP BY h.usuario, h.fecha;


Un saludo.
2  Programación / Bases de Datos / Curioso problema (¿SQL puede hacerlo?) en: 22 Diciembre 2011, 10:45 am
Wenas, soy nuevo en el foro.
Veréis, el otro día en la universidad se planteó una pregunta entre los compañeros,y ni el profesor de bbdd ha sido capaz de saber cómo se hace (pero el caso es que sí que se debería poder).
Se para confirmar asistencias de una serie de usuarios por ejemplo para una empresa, como una maquina de picar.
Presentamos una sola tabla con tuplas de 3 campos: Usuario, date, time. No hay un campo Key.
Formato: (0001,110101,800256), Correspondiente a id usuario, otro a la fecha de hoy, formato aammdd , y tiempo de ingreso, hhmmss.
Ejemplo de tabla:
[0001,110101,080256]
[0002,110101,080300]
[0001,110101,140200]
[0002,110101,140351]
[0001,110101,153612]
[0002,110101,153123]
[0001,110101,171215]
[0002,110101,171121]
Correspondería esto al primer día de trabajo, con dos trabajadores, que entran por la mañana, salen a  comer, vuelven de comer y se van por la tarde.
El caso es que la consulta que se desea realizar es la siguiente:
Para un sólo día, se pretende conseguir una tupla que contenga los siguientes campos:
[date,usuario,hora de entrada por la mañana(<9h), hora de salida por la mañana(>9h y <=15h), hora de entrada por la tarde(>=15h y <16h), hora de salida por la tarde>=16h]
El resultado sería, para la tabla anterior, dos tuplas con los dos usuarios, con fecha del 110101, y sus distintas horas de picar.
Nadie sabe si se puede hacer un UNIQUE date con JOINs a la misma tabla aplicando los filtros de la hora.
¿Alguna idea?
Salu2!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines