Váš problém je, že váš vstupní parametr má stejný název jako váš sloupec, takže když dotaz uvidí
WHERE SCOTT.EMP.DEPTNO = deptno
interpretuje deptno jako SCOTT.EMP.DEPTNO , což znamená, že platí pro všechny hodnoty deptno . Změňte název svého vstupního parametru a dotaz bude fungovat podle očekávání.
Měli byste také použít NVL abyste zajistili, že jednotlivé SUM hodnoty nejsou NULL , jako by jeden z nich byl NULL takže jejich součet bude NULL také, tj.
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;