Ditt problem är att din indataparameter har samma namn som din kolumn, så när frågan ser
WHERE SCOTT.EMP.DEPTNO = deptno
den tolkar deptno
som SCOTT.EMP.DEPTNO
, vilket betyder att det är sant för alla värden i deptno
. Ändra namnet på din indataparameter så fungerar frågan som förväntat.
Du bör också använda NVL
för att säkerställa att den individuella SUM
värden är inte NULL
, som om någon av dem är NULL
som gör summan av dem NULL
likaså, 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;