elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 03:19  


Tema destacado: Nueva página de elhacker.net en Google+ Google+

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos
| | | |-+  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 778 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.213



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

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
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
problema curioso
Hardware
k a t z 8 661 Último mensaje 2 Mayo 2006, 22:28
por k a t z
Problema curioso
Windows
gzr 1 292 Último mensaje 16 Octubre 2006, 22:37
por T0rete
curioso problema
Hacking Wireless
rian 1 374 Último mensaje 29 Junio 2007, 15:12
por pianista
Problema curioso de navegación
Dudas Generales
neliti 3 635 Último mensaje 7 Abril 2010, 20:55
por winroot
¿Se puede hacer? y... ¿qué lenguaje se utilizaría para hacerlo?
Dudas Generales
avmiitxe 3 1,061 Último mensaje 16 Febrero 2011, 17:34
por pitoloko
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines