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

Seleccionar datos fuera de un rango especifico

Estas en el tema de Seleccionar datos fuera de un rango especifico en el foro de Mysql en Foros del Web. Hola a todos, Hoy vengo a ustedes con una duda que si me esta deteniendo un poco en mi trabajo... estoy desarrollando un sistema para ...
  #1 (permalink)  
Antiguo 21/08/2011, 21:15
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 15 años, 3 meses
Puntos: 4
Seleccionar datos fuera de un rango especifico

Hola a todos,

Hoy vengo a ustedes con una duda que si me esta deteniendo un poco en mi trabajo... estoy desarrollando un sistema para la renta de equipo, en el cual se pueden llevar uno o varios equipos por ciertos días, la base de datos esta resuelta de esta forma:

Tabla equipo

idequipo
Número de serie
Descripcion


Tabla prestamo

idprestamo
fecha_inicio
fecha_fin


tabla prestamo_has_equipo

idequipo
idprestamo


Realmente si lo que necesitara saber fuera que equipos tengo prestados para x o y día no habría mayor problema PERO debo sacar los equipos disponibles para ciertas fechas, es decir, un cliente quiere rentar 3 equipos durante 2 días para dentro de un mes, necesito saber exactamente que equipos tengo disponibles para esos dos días.

Cualquier duda o sugerencia, incluso sobre la estructura de la base de datos sera muy bien recibida.

Saludos
  #2 (permalink)  
Antiguo 22/08/2011, 05:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Seleccionar datos fuera de un rango especifico

Te sobra la tabla prestamo_has_equip. Basta con añadir el idequipo a la tabla prestamo.

Tabla prestamo

idprestamo
idequipo
fecha_inicio
fecha_fin

Sobre lo otro mira en el FAQ de MySQL #24
  #3 (permalink)  
Antiguo 22/08/2011, 09:22
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Seleccionar datos fuera de un rango especifico

Hola jurena, aquí tengo un par de comentarios:

- En si la tabla de prestamos_has_equipo no esta de sobra, porque si bien es cierto que pueden llevarse un solo equipo en renta, bien se pueden llevar 2, 3 o más equipos en renta con la misma clave del préstamo.

- Por lo que comprendo del query que mencionas en el MySQL #24, lo que va a hacer este me va a traerme (en este caso) los prestamos que tengo para un periodo en especifico de tiempo, es decir que equipos tengo prestados para de aquí a dos semanas, pero lo que necesito saber es que equipos tengo libres, es decir, necesito traer de la base de datos que equipos no están reservados en un periodo especifico.

Saludos y muchas gracias por tu respuesta
  #4 (permalink)  
Antiguo 23/08/2011, 22:53
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Seleccionar datos fuera de un rango especifico

Bueno pues ya logre encontrar la respuesta a la interrogante, la respuesta que me proporciono jurena estaba bien pero a medias, en efecto debía sacar los equipos ya rentados para las fechas de la búsqueda para poder sacar los que no estaban en renta el query es algo así:

Código:
SELECT eq.idequipo, eq.numero_serie 
FROM equipo eq, prestamo_has_equipo pe
WHERE eq.idequipo = pe.equipo_idequipo
AND eq.idequipo NOT IN(
   SELECT he.equipo_idequipo AS idequipo
   FROM prestamo pr, prestamo_has_equipo he
   WHERE pr.idprestamo = he.prestamo_idprestamo 
   AND pr.fecha_inicio <= '2011-09-05'
   AND  pr.fecha_fin >= '2011-09-01'
);
Como ven el secreto de lo que buscaba es el NOT IN

Saludos, y espero le sirva a alguien más

Etiquetas: especifico, fuera, rango, seleccionar, tabla
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 09:59.