Uw probleem is dat uw invoerparameter dezelfde naam heeft als uw kolom, dus wanneer de query ziet
WHERE SCOTT.EMP.DEPTNO = deptno
het interpreteert deptno
als SCOTT.EMP.DEPTNO
, wat betekent dat het waar is voor alle waarden van deptno
. Wijzig de naam van uw invoerparameter en de query werkt zoals verwacht.
Gebruik ook NVL
om ervoor te zorgen dat de individuele SUM
waarden zijn niet NULL
, alsof een van beide NULL
is dat maakt de som van hen NULL
ook d.w.z.
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;