Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Consulta: obtener varios registros de un registro.

Estas en el tema de Consulta: obtener varios registros de un registro. en el foro de Mysql en Foros del Web. Amigos, necesito hacer una consulta medio jalada de los pelos(medio loca). imaginen la siguiente tabla id | fecha1 ................| fecha2 ..................| usuario 1 |01-01-2009 08:00 ...
  #1 (permalink)  
Antiguo 29/09/2009, 09:47
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Consulta: obtener varios registros de un registro.

Amigos, necesito hacer una consulta medio jalada de los pelos(medio loca).

imaginen la siguiente tabla

id | fecha1................| fecha2..................| usuario
1 |01-01-2009 08:00 |01-01-2009 17:00 | pedro
2 |01-01-2009 08:00 |02-01-2009 17:00 | luis
3 |04-01-2009 08:00 |06-01-2009 17:00 | pedro
4 |08-01-2009 08:00 |09-01-2009 12:00 | luis

Lo que quiero hacer es obtener varios registros de un sólo registro, es decir,
la tabla contiene dos campos tipo fecha(fecha1, fecha2) es rango de fechas, donde inicia y termina un periodo,
la idea es tener un registro por cada día incluido.


Resultado deseado
fecha ...........|hora1 |hora2 | usuario
01-01-2009 |08:00 |17:00 | pedro
01-01-2009 |08:00 |17:00 | luis
02-01-2009 |08:00 |17:00 | luis
04-01-2009 |08:00 |17:00 | pedro
05-01-2009 |08:00 |17:00 | pedro
06-01-2009 |08:00 |17:00 | pedro
08-01-2009 |08:00 |17:00 | luis
08-01-2009 |08:00 |12:00 | luis

Ahora les voy a explicar para que quiero hacer esto, tengo una tabla que guarda permisos solicitados de un personal,
como ven tiene la fecha y hora que comienza y la fecha y hora en que termina el permiso. La idea es tener un reporte
donde se refleje de los días laborables cuales estaba en permiso. Debido a que lo tengo que cruzar con la tabla
que me dice a que hora vino a trabajar cada día(eso ya esta listo).

Se puede o esta muy loco?
__________________
S.L.P.S.
  #2 (permalink)  
Antiguo 29/09/2009, 10:13
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Consulta: obtener varios registros de un registro.

Lo mejor es hacer una consulta simple para extraer los datos y calcular los intervalos de días mediante la programación. Es decir, con la consultas obtienes la fecha de inicio y la fecha de fin, y una vez tienes esos datos mediante programación (php, ASP.NET, etc.) creas un array con todos los días comprendidos entre esas fechas.

Un saludo
  #3 (permalink)  
Antiguo 29/09/2009, 10:24
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Consulta: obtener varios registros de un registro.

Lo que complica la cosa para hacerlo desde mysql es el manejo de dos campos fecha1 y fecha2 para tratar de mostrarlos en una sola columna dependiendo del caso.

Te recomiendo al igual que paloto valerte de un poco de programación para obtener el reporte.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 29/09/2009, 10:25
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 22 años, 5 meses
Puntos: 1
Respuesta: Consulta: obtener varios registros de un registro.

Creo que así no me va a servir, ya que tengo una función en PHP que me genera un reporte a partir de una consulta, entonces deberia de enviarle la consulta lista de MYSQL, Gracias paloto. pero no se te ocurre otra cosa?? así sea un poco más complejo???
__________________
S.L.P.S.
  #5 (permalink)  
Antiguo 29/09/2009, 10:39
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Consulta: obtener varios registros de un registro.

Lo único que se me ocurre es que modifiques la tabla de la base de datos y en lugar de representar rangos de fecha, tengas un registro por cada día y cada trabajador. Es decir, la tabla sería así:

id | fecha1................| usuario
1 |01-01-2009 08:00 | pedro
2 |01-01-2009 08:00 | luis
3 |02-01-2009 08:00 | luis
4 |04-01-2009 08:00 | pedro
5 |05-01-2009 08:00 | pedro
6 |06-01-2009 08:00 | pedro
7 |08-01-2009 08:00 | luis
8 |09-01-2009 08:00 | luis

Entonces lo tendrías mucho más fácil. De la otra forma no se me ocurre nada. Lo siento.

Un saudo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:01.