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;