Ihr Problem ist, dass Ihr Eingabeparameter den gleichen Namen wie Ihre Spalte hat, also wenn die Abfrage
siehtWHERE SCOTT.EMP.DEPTNO = deptno
es interpretiert deptno als SCOTT.EMP.DEPTNO , was bedeutet, dass es für alle Werte von deptno wahr ist . Ändern Sie den Namen Ihres Eingabeparameters und die Abfrage funktioniert wie erwartet.
Sie sollten auch NVL verwenden um sicherzustellen, dass die individuelle SUM Werte sind nicht NULL , als wäre einer von ihnen NULL das wird die Summe von ihnen zu NULL machen auch d.h.
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;