sql >> Databáze >  >> RDS >> Oracle

Oracle [Procedura] - Funkce součtu ignoruje klauzuli WHERE

Váš problém je, že váš vstupní parametr má stejný název jako váš sloupec, takže když dotaz uvidí

WHERE SCOTT.EMP.DEPTNO = deptno

interpretuje deptno jako SCOTT.EMP.DEPTNO , což znamená, že platí pro všechny hodnoty deptno . Změňte název svého vstupního parametru a dotaz bude fungovat podle očekávání.

Měli byste také použít NVL abyste zajistili, že jednotlivé SUM hodnoty nejsou NULL , jako by jeden z nich byl NULL takže jejich součet bude NULL také, tj.

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;



  1. Datum a čas v PHP skriptu

  2. Jak vrátím seznam hodnot místo řetězce při dotazu na databázi Oracle pomocí XPath?

  3. Načíst poslední nenulový záznam každého sloupce pro každý záznam_id v MySQL

  4. Jak nastavit AND podmínku pro VŠECHNY sloupce - php