Sunteți pe pagina 1din 3

-- Implemente un Procedimiento almacenado que muestre el listado de los paises y

su total de pasajeros

IF OBJECT_ID('PASAJEROSXPAIS') IS NOT NULL


BEGIN
DROP PROCEDURE PASAJEROSXPAIS
END
GO
CREATE PROCEDURE PASAJEROSXPAIS
AS
SELECT PAI.PAIS AS Pais, COUNT(*) AS Total_Pasajeros
FROM PASAJERO PAS
JOIN PAIS PAI ON PAS.IDPAIS=PAI.IDPAIS
GROUP BY PAI.PAIS
GO
EXECUTE PASAJEROSXPAIS
GO

-- -- Implementar un Procedimiento Almacenado que permita mostrar los pases que an


no tienen pasajero registrado
IF OBJECT_ID('PAISNOREGISTRADO') IS NOT NULL
BEGIN
DROP PROCEDURE PAISNOREGISTRADO
END
GO
CREATE PROCEDURE PAISNOREGISTRADO
AS
SELECT PAI.IDPAIS,PAI.PAIS
FROM PAIS PAI
LEFT JOIN PASAJERO PAS ON PAI.IDPAIS=PAS.IDPAIS
WHERE PAS.IDPAIS IS NULL
GO
EXEC PAISNOREGISTRADO
GO

SELECT*FROM PAIS
/*Implemente un PA que permita registrar a un nuevo pasajero, para este caso deb
er definir
como parmetros de entrada todos los campos referentes al pasajero a excepcin del I
DPAIS;
aqui deber ingresar el nombre del pas, en caso no exista emitir un mensaje de
"PAIS NO REGISTRADO EN LA BASE". Finalmente si el pasajero se registra correct
amente
emitir un mensaje de "PASAJERO REGISTRADO CON EXITO"*/

IF OBJECT_ID('NUEVOPASAJERO') IS NOT NULL


BEGIN
DROP PROCEDURE NUEVOPASAJERO
END
GO
CREATE PROCEDURE NUEVOPASAJERO
(
@IDPAS CHAR(5),@NOM VARCHAR(50),@PAI VARCHAR(30),
@TEL VARCHAR(15),@EMA VARCHAR(50)
)
AS
BEGIN TRY
DECLARE @IDPAI CHAR(4)
SELECT @IDPAI = IDPAIS FROM PAIS WHERE PAIS=@PAI
IF @IDPAI IS NOT NULL
BEGIN
INSERT INTO PASAJERO VALUES (@IDPAS,@NOM,@IDPAI,@TEL,@EMA)
PRINT 'PASAJERO REGISTRADO !!!'
END
ELSE
PRINT 'ERROR!!! PAIS NO REGISTRADO'
END TRY
BEGIN CATCH
PRINT 'ERROR AL INSERTAR DATOS'
END CATCH
GO
EXEC NUEVOPASAJERO 'P0014','JANETH CRUZ','HONDURAS','999999999','JCRUZ@HOTMAIL.
COM'
GO
EXEC NUEVOPASAJERO 'P0012','JANETH CRUZ','FRANCIA','999999999','JCRUZ@HOTMAIL.CO
M'
GO
/*Implemente un PA que permita mostrar las reservas de un determinado pasajero p
ara este caso deber
considerar como paramentro de entrada el nombre del pasajero, defina la cabecera
del lisa e
implemente un mensaje de error en el caso que el pasajero no exista */

IF OBJECT_ID('RESERVASXPASAJERO') IS NOT NULL


BEGIN
DROP PROCEDURE RESERVASXPASAJERO
END
GO
CREATE PROCEDURE RESERVASXPASAJERO(@PASAJERO VARCHAR(30))
AS
IF EXISTS (SELECT IDPASAJERO
FROM PASAJERO
WHERE NOMBRES=@PASAJERO)
SELECT RES.* FROM RESERVA RES
JOIN PAGO PAG ON RES.IDRESERVA=PAG.IDRESERVA
WHERE PAG.IDPASAJERO=(SELECT IDPASAJERO
FROM PASAJERO
WHERE NOMBRES=@PASAJERO)
PRINT 'EL PASAJERO NO ESTA REGISTRADO !!!'
GO
EXEC RESERVASXPASAJERO 'JUAN PEREZ'
GO
EXEC

S-ar putea să vă placă și