Ejercicio PL/SQL

Iniciado por SeñorX95, 4 Mayo 2015, 11:22 AM

0 Miembros y 1 Visitante están viendo este tema.

SeñorX95

Me pide que haga un programa en PL/SQL que calcule el numero de socios distintos que hayan alquilado cada pelicula. Los alquileres los saco de dos tablas: alquileres e historicoalquileres pero me tienen que salir juntos. Tengo este código pero no se juntar las dos tablas y que si es el mismo socio no me lo cuente dos veces.

Código (sql) [Seleccionar]

SET SERVEROUTPUT ON;
DECLARE
UnPelicula peliculas%ROWTYPE;
resultado INTEGER;
resultado2 INTEGER;
resultado3 INTEGER;


BEGIN
FOR UnPelicula IN
(SELECT peliculas.codp,peliculas.nombrep, count(distinct alquileres.codc) AS TOTAL
FROM socios, peliculas, alquileres
WHERE peliculas.codp=alquileres.codp
GROUP BY peliculas.codp,peliculas.nombrep
ORDER BY TOTAL DESC)
 
LOOP

resultado:=UnPelicula.TOTAL;

END LOOP;
    DBMS_OUTPUT.PUT_LINE('****HISTORICO-PRESTAMOS******');
    DBMS_OUTPUT.PUT_LINE('****HISTORICO-PRESTAMOS******');
    DBMS_OUTPUT.PUT_LINE('****HISTORICO-PRESTAMOS******');
FOR UnPelicula IN
(SELECT peliculas.codp,peliculas.nombrep, count(distinct historicoalquileres.codc) AS TOTAL
FROM socios, peliculas, historicoalquileres
WHERE peliculas.codp=historicoalquileres.codp
GROUP BY peliculas.codp,peliculas.nombrep
ORDER BY TOTAL DESC)
 
LOOP

resultado2:=UnPelicula.TOTAL;
resultado3:=resultado+resultado2;
DBMS_OUTPUT.PUT_LINE('**********');
DBMS_OUTPUT.PUT_LINE(UnPelicula.nombrep ||' '|| resultado3 || ' Socios Distintos');
DBMS_OUTPUT.PUT_LINE('**********');
END LOOP;


END;
/