aadd_act2_9/sql/procedimiento-y-funcion.sql
Isidoro Nevares Martín d12b970af3 commit inicial
2025-11-26 11:10:43 +01:00

46 lines
1.1 KiB
SQL

DELIMITER //
CREATE PROCEDURE obtenerRepartoPeliculasPorActor(IN p_patron_nombre_actor VARCHAR(100))
BEGIN
SELECT
a.nombre AS nombre_actor,
a.id_pais AS id_pais_actor,
p.titulo AS titulo_pelicula,
p.id_pais AS id_pais_pelicula,
d.nombre AS nombre_director,
d.id_pais AS id_pais_director,
d.fecha_nacimiento AS fecha_nacimiento_director
FROM reparto r
JOIN actor a ON r.id_actor = a.identificador
JOIN pelicula p ON p.identificador = r.id_pelicula
JOIN director d ON p.id_director = d.identificador
WHERE p.identificador IN (
SELECT re.id_pelicula
FROM reparto re
JOIN actor ac ON re.id_actor = ac.identificador
JOIN pelicula pe ON re.id_pelicula = pe.identificador
WHERE ac.nombre LIKE p_patron_nombre_actor
);
END;
//
CREATE FUNCTION obtenerNumeroActoresPelicula(p_id_pelicula INT)
RETURNS INT
DETERMINISTIC
READS SQL DATA
BEGIN
DECLARE total_actores_pelicula INT;
SELECT COUNT(*) INTO total_actores_pelicula
FROM reparto
WHERE id_pelicula = p_id_pelicula;
RETURN total_actores_pelicula;
END;
//
DELIMITER ;