Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2015, 17:35
Lentorro
 
Fecha de Ingreso: agosto-2014
Mensajes: 30
Antigüedad: 9 años, 7 meses
Puntos: 0
Problema con selects anidados

Os pongo en situación:

Tengo una tabla llamada ClienteAuto:

Código SQL:
Ver original
  1. CREATE TABLE ClienteAuto
  2. (Fk_idCliente CHAR(9) NOT NULL,
  3. Fk_matricula_auto VARCHAR(15) NOT NULL,
  4. fecha_inicio_alquiler DATE NOT NULL,
  5. fecha_final_alquiler DATE NOT NULL,
  6. CONSTRAINT fk_idCliente FOREIGN KEY(Fk_idCliente) REFERENCES Clientes (idCliente),
  7. CONSTRAINT fk_matricula_auto FOREIGN KEY(Fk_matricula_auto) REFERENCES Autos (matricula_auto),
  8. PRIMARY KEY (Fk_idCliente, Fk_matricula_auto)
  9. )

He insertado varios registros en la misma y ahora mi intención es la de hacer una consulta en la que yo le doy una serie de matriculaS, una fecha_inicio_alquiler y una fecha_final_alquiler; y la consulta me devuelva la o las matriculas que NO cumplen con dichos requisitos.

A ver si me explico... la intención que hay detrás de todo esto es que yo le de una o unas matriculas y las fechas y la consulta me responda cuales de esas matriculas (autos) NO están alquilados en el periodo de tiempo que le propongo a través de las fechas.

Esta es la consulta que tengo hecha:
Código SQL:
Ver original
  1. SELECT `Fk_matricula_auto`
  2. FROM `clienteauto`
  3. WHERE `Fk_matricula_auto` = 'abb1414' AND `Fk_matricula_auto` NOT IN
  4. (SELECT `Fk_matricula_auto`
  5. FROM `clienteauto`
  6. WHERE `Fk_matricula_auto` = 'abb1414'  AND fecha_inicio_alquiler > '2006-06-05' AND `fecha_final_alquiler` <= '2006-06-07')

Esa consulta reconoce que en ese periodo de tiempo:
fecha_inicio_alquiler > '2006-06-05' and `fecha_final_alquiler` <= '2006-06-07'
el auto con matricula 'abb1414' está alquilado y por lo tanto no me devuelve la matricula (al menos así lo entiendo yo) pero quiero poder hacerlo no con una sino con varias matriculas y si alguno de esos autos NO está alquilado, me devuelva dicha matricula. Gracias.

Última edición por Lentorro; 29/07/2015 a las 04:22