Il tuo problema è che il tuo parametro di input ha lo stesso nome della tua colonna, quindi quando la query vede
WHERE SCOTT.EMP.DEPTNO = deptno
interpreta deptno
come SCOTT.EMP.DEPTNO
, il che significa che è vero per tutti i valori di deptno
. Modifica il nome del parametro di input e la query funzionerà come previsto.
Dovresti anche usare NVL
per garantire che il singolo SUM
i valori non sono NULL
, come se uno dei due fosse NULL
che ne farà la somma NULL
pure cioè
select NVL(SUM(SAL), 0) INTO SALSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;
select NVL(SUM(COMM), 0) INTO COMMSUM FROM SCOTT.EMP WHERE SCOTT.EMP.DEPTNO = numerdept;