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;