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

Consulta varias tablas BD

Estas en el tema de Consulta varias tablas BD en el foro de SQL Server en Foros del Web. Hola. A ver si me podeis echar una mano ya que llevo poco tiempo utilizando SQL y todavia me cuesta ciertas cosas. Os cuento mi ...
  #1 (permalink)  
Antiguo 07/12/2010, 16:06
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Consulta varias tablas BD

Hola. A ver si me podeis echar una mano ya que llevo poco tiempo utilizando SQL y todavia me cuesta ciertas cosas.
Os cuento mi problema:
Tengo en una base de datos de videoclub una tabla de clientes relacionada con una tabla peliculas. Evidentemente, esta relacion genera una tabla ReservaPeliculas con unos atributos de FechaEntrega y FechaDevolucion.
CLIENTES ----- (0-N) RESERVAPELICULA------(0-N) PELICULAS
Ademas, Peliculas tiene un atributo Tipo(Infantil,Adulto) para clasificar el tipo de pelicula.
Es decir: PELICULAS:
CodPelicula TipoPelicula
1 Infantil
2 Adulto
3 Adulto
4 Infantil
5 Infantil



Y quiero hacer, comprobar que cuando me realizen una reserva, si esta es posible realizarla, y para eso se debe saber si hay peliculas disponibles del tipo solicitado.

Yo me he planteado lo siguiente:hacer un procedimiento con los siguientes parametros de entrada y si se cumplen todos los requisitos, insertar la reserva en la tabla Reserva.

CREATE PROC ReservarPelicula
(@CodCliente int,@TipoPelicula char(9),@FechaEntrada datetime,@FechaSalida datetime)

pero donde me "lio" es que tengo que mirar si me quieres reservar una pelicula de tipo Adulto, primero miro en la tabla Peliculas todas las de Aldultos y luego voy a Reserva y miro cuales no estan??? Y como lo relaciono???
Perdonarme la parrafada. Gracias
  #2 (permalink)  
Antiguo 08/12/2010, 08:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta varias tablas BD

Código SQL:
Ver original
  1. SELECT * FROM peliculas AS pe
  2. WHERE pelicula.tipo = 'Adulto' AND pelicula.tipo NOT IN (SELECT * FROM reservas AS re WHERE pe.id=re.id)

Algo asi, saludos!
  #3 (permalink)  
Antiguo 09/12/2010, 08:58
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Consulta varias tablas BD

Pienso que el Tipo no tiene que ver directamente con la reserva, ya que Tipo es un atributo de la tabla Peliculas.
La condicion para hacer una reserva debe ser el stock disponible de acuerdo a lo seleccionado por el cliente.
Algo asi:
Código SQL:
Ver original
  1. SELECT pe.*
  2. FROM peliculas pe
  3. INNER JOIN (
  4.     SELECT id, COUNT(1) total FROM reservas GROUP BY id
  5. ) pe.id = re.id
  6. WHERE pe.tipo = 'Adulto'
  7. AND pe.stock > re.total
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.

Etiquetas: bd, tablas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:48.