Вашият проблем е, че вашият входен параметър има същото име като вашата колона, така че когато заявката види
WHERE SCOTT.EMP.DEPTNO = deptno
той интерпретира deptno като SCOTT.EMP.DEPTNO , което означава, че е вярно за всички стойности на deptno . Променете името на вашия входен параметър и заявката ще работи според очакванията.
Трябва също да използвате NVL за да се гарантира, че отделният SUM стойностите не са NULL , сякаш някой от тях е NULL което ще направи сбора им NULL както и т.е.
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;