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


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Curioso problema (¿SQL puede hacerlo?)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Curioso problema (¿SQL puede hacerlo?)  (Leído 2,130 veces)
CapLurker

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Curioso problema (¿SQL puede hacerlo?)
« en: 22 Diciembre 2011, 10:45 »

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!


En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: Curioso problema (¿SQL puede hacerlo?)
« Respuesta #1 en: 22 Diciembre 2011, 16:22 »

una opcion es ir interpretando el string en partes y verificar, nada mas, por ejemplo usando left, right, lo que sea...vas extrayendo los 2 primeros digitos y vas comparando si eso es mayor a lo que vos queres. tambein creo que en sql podes convertir ese numero (110101) a un formato de fecha que puedas manejar facilmente.

Convert an Integer Date to a Smalldatetime

saludos.


En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
CapLurker

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Curioso problema (¿SQL puede hacerlo?)
« Respuesta #2 en: 23 Diciembre 2011, 08:31 »

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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Se puede hacer? y... ¿qué lenguaje se utilizaría para hacerlo?
Dudas Generales
avmiitxe 3 2,283 Último mensaje 16 Febrero 2011, 17:34
por SuperDraco
Problema curioso de Conexión
Redes
zilae 3 1,351 Último mensaje 18 Octubre 2015, 02:34
por zilae
Es posible que Firefox consiga acceder donde solo puede hacerlo IE Expler?
GNU/Linux
Luzzy.ta 2 4,352 Último mensaje 12 Noviembre 2015, 16:03
por Luzzy.ta
Curioso problema de conexión « 1 2 »
Redes
‭lipman 14 3,810 Último mensaje 18 Septiembre 2016, 17:28
por PalitroqueZ
Mi operador me ha metido en un fichero de morosos; ¿puede hacerlo o es ilegal?
Noticias
wolfbcn 0 168 Último mensaje 9 Mayo 2019, 21:39
por wolfbcn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines