Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
Consultar valores de una tabla que no esten en otras dos tablas

Hola, que tal? Tengo un problema, quiero hacer una consulta que me devuelva valores que no se encuentren en otras 2 tabla. En una consulta anterior, usando el operador not in resolvi la operacion de que me devuelva los valores que no se encontraban en una tabla. Pero al querer usar 2 veces el not in no me deja. Le dejo como tengo la consulta hasta el momento, espero su respuesta, gracias

Select H.NroHabitacion,H.IdTipo
From Habitaciones H
Where (H.idHabitacion not in (Select R.IdHabitacion From ClienteReservaHabitacion R)) or (H.idHabitacion not in (Select O.IdHabitacion From ClienteOcupaHabitacion O) )
Order By H.IdTipo,H.NroHabitacion
Responder Con Cita
  #2  
Antiguo 26-11-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Esto no lo entiendo:
Cita:
Empezado por juanma92 Ver Mensaje
Pero al querer usar 2 veces el not in no me deja.
¿Quién no te deja? Es decir, ¿por qué no te deja? ¿Qué error se produce, si es que se produce?

Y, por cierto, para la próxima vez:
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 26-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si por lo menos supiésemos lo que quiere hacer, por qué, qué campos, qué es cada uno, qué problema tiene, etc.
Responder Con Cita
  #4  
Antiguo 27-11-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por juanma92 Ver Mensaje
Hola, que tal? Tengo un problema, quiero hacer una consulta que me devuelva valores que no se encuentren en otras 2 tabla. En una consulta anterior, usando el operador not in resolvi la operacion de que me devuelva los valores que no se encontraban en una tabla. Pero al querer usar 2 veces el not in no me deja. Le dejo como tengo la consulta hasta el momento, espero su respuesta, gracias

Select H.NroHabitacion,H.IdTipo
From Habitaciones H
Where (H.idHabitacion not in (Select R.IdHabitacion From ClienteReservaHabitacion R)) or (H.idHabitacion not in (Select O.IdHabitacion From ClienteOcupaHabitacion O) )
Order By H.IdTipo,H.NroHabitacion
Hola juanma92,

Lo que tú quieres hacer es que te devuelva los registros que no estén en ClientesReservaHabitacion y también que no estén en ClientesOcupaHabitacion, pues en vez de or pon un and, no utilices alias, ya que estos no se utilizan en ningún lado.
Código SQL [-]
SELECT
    NROHABITACION, IDTIPO
  FROM Habitaciones
  WHERE IDHABITACION NOT IN
          (SELECT
               IDHABITACION
             FROM ClientesReservaHabitacion)
        AND IDHABITACION NOT IN
          (SELECT
               IDHABITACION
             FROM ClientesOcupaHabitacion)
  ORDER BY IDTIPO, NROHABITACION
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #5  
Antiguo 28-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
Consulta SQL a access entre 2 fechas

Hola, como va? Tengo un problema, estoy haciendo un programa gestor de las reservas de un hotel. Al momento de hacer una nueva reserva me debe seleccionar las fechas en las que quiere la reserva y el tipo de habitacion, y al consultar le deben saltar todas las habitaciones libres de ese tipo y en esas fechas.
Yo tengo una tabla de HABITACIONES, y otra de RESERVAS, yo intente hacer con que me muestre todas las habitaciones de la tabla HABITACIONES del tipo que me indican y saque las que esten reservadas entre las fechas que me indican consultandolo en la tabla RESERVAS, pero esa subconsulta no me devuelve resultados si la hago adentro.(la probe aparte y tiraba resultados)

Les dejo como tengo la consulta a ver si me pueden ayudar. Gracias y saludos

Código SQL [-]
Select H.NroHabitacion,H.IdTipo,H.idHabitacion
From Habitaciones H
Where (H.IdTipo = :dato) and not (H.idHabitacion in (Select R.IdHabitacion 
                                                                       From ClienteReservaHabitacion R 
                                                                       Where (R.FechaIngreso BETWEEN :fecha1 and :fecha2) or 
                                                                                (R.FechaSalida BETWEEN :fecha1 and :fecha2))) 
Order By H.NroHabitacion
Responder Con Cita
  #6  
Antiguo 28-11-2012
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Si la consulta funciona fuera del programa yo creo que la cosa está en como le mandas los parámetros y el valor...

Lo que noto es que usas dos parámetros duplicados en la consulta, te convendría hacer cuatro parámetros diferentes y además checar que la fecha inicial sea menor a la final...

Checa esto y después nos comentas
__________________
Herr Heins Faust
Responder Con Cita
  #7  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
lo voy a probar

Buenisimo, ahora lo pruebo. Te cuento que lo que me decis que pruebe de la fecha final sea mayor a la inicial lo pruebo afuera del prrograma

Saludos
Responder Con Cita
  #8  
Antiguo 29-11-2012
juanma92 juanma92 is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 18
Poder: 0
juanma92 Va por buen camino
No funciono

Hola, probe poniendo mas parametros para que no hayan duplicados y no me devuelve nada la consulta. Nose que puede pasar. Te paso como quedo:
Código SQL [-]
Select H.NroHabitacion,H.IdTipo,H.idHabitacion
From Habitaciones H
Where (H.IdTipo = :dato) and not (H.idHabitacion in (Select R.IdHabitacion 
                                                                       From ClienteReservaHabitacion R 
                                                                       Where (R.FechaIngreso BETWEEN :fecha1 and :fecha2) or 
                                                                                (R.FechaSalida BETWEEN :fecha3 and :fecha4) )) 
Order By H.NroHabitacion
Espero que alguien tenga alguna solucion. Gracias
Responder Con Cita
  #9  
Antiguo 29-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puedes poner la estructura de las tablas implicadas y exactamente qué campos necesitas y con qué filtro?
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta entre 2 fechas. DeLiRioS MySQL 14 29-04-2013 18:36:35
Consulta Mysql Suma entre rango de fechas kaeltas MySQL 4 22-06-2012 21:30:44
Consulta entre fechas con ADO radenf Varios 7 16-12-2010 12:06:35
Obtener consulta entre fechas maravert MySQL 1 16-11-2009 22:44:15
slq entre dos fechas comparar fechas taru MySQL 2 30-07-2007 16:10:36


La franja horaria es GMT +2. Ahora son las 15:59:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi