Dit problem er, at din inputparameter har samme navn som din kolonne, så når forespørgslen ser
WHERE SCOTT.EMP.DEPTNO = deptno
den fortolker deptno
som SCOTT.EMP.DEPTNO
, hvilket betyder, at det er sandt for alle værdier af deptno
. Skift navnet på din inputparameter, og forespørgslen vil fungere som forventet.
Du bør også bruge NVL
for at sikre, at den enkelte SUM
værdier er ikke NULL
, som om en af dem er NULL
det vil gøre summen af dem NULL
også, dvs.
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;