Combinar datos de misma tabla al insertar registro

Necesito ayuda ya que estoy haciendo una base de datos de una cadena de videoclubs.
Tengo una tabla ejemplares de películas que cuyos campos son:
cod_ejemplar, fecha_adquisición, cod_videoclub,cod_pelicula.
El código del videoclub es para saber en que videoclub está, eso lo metemos a mano.
La cuestión es que tengo una función para realizar un alquiler, es decir, le indico que cliente y qué película para que me lo inserte en la tabla ALQUILERES realizados:
create procedure realizaralquiler 
@codigo numeric(2,0),
@dnicliente numeric(8,0),
@cod_videoclub int (*esto esta mal, quiero que lo coja de la tabla ejemplar*)
As
Begin
if (@codigo in (Select cod_ej from alquiler where entregado='false'))
print ' La película que está intentando alquilar ya está alquilada'
else
begin
insert into alquiler(cod_ej,dni,cod_video)
values(@codigo,@dnicliente)
print('Alquiler efectuado correctamente')
end
end
AL introducir ese registro en la tabla alquiler, el código del videoclub quiero que sea el mismo código que aparece en la tabla ejemplar para ese código de ejemplar.
-----------------------------------------------------------------------------------------------
Por ejemplo:
Registro en tabla ejemplar:
Codigoej: 1
Código de videoclub: 4
----------------------------
Registro en tabla alquiler:
Codejemplar: 1, pasado manualmente como parámetro
Dnicliente: le paso el dni manualmente como parámetro
Código de videoclub: 4 esto es lo que quiero que lo coja de la tabla ejemplar!
------------------------------------------------------------------------------------------------------------
1

1 respuesta

Respuesta
1
Yo creo que deberías pasar como parámetro el código videoclub tal como lo tienes
si no puedes por el motivo que sea tienes que buscarlo con un select dentro del procedimiento
create procedure realizaralquiler
@codigo numeric(2,0), 
@dnicliente numeric(8,0), 
as 
begin 
<span style="white-space: pre;"> </span>declare @cod_videoclub as int
<span style="white-space: pre;"> </span>if (@codigo in (Select cod_ej from alquiler where entregado='false')) 
<span style="white-space: pre;"> </span>print ' La película que está intentando alquilar ya está alquilada' 
<span style="white-space: pre;"> </span>else 
<span style="white-space: pre;"> </span>begin 
<span style="white-space: pre;"> </span>select @cod_videoclub=codigo_de_videoclub
<span style="white-space: pre;"> </span>from ejemplares <span style="white-space: pre;"> </span>
<span style="white-space: pre;"> </span><span style="white-space: pre;"> </span>where [email protected]_ej
 
<span style="white-space: pre;"> </span>insert into alquiler(cod_ej,dni,cod_video) 
<span style="white-space: pre;"> </span>values(@codigo,@dnicliente,@cod_videoclub
<span style="white-space: pre;"> </span>print('Alquiler efectuado correctamente') 
<span style="white-space: pre;"> </span>end 
end
espero que te sirva si necesitas aclaración ya sabes
saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas