Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle [Prosedur] - Fungsi Sum mengabaikan klausa WHERE

Masalah Anda adalah parameter input Anda memiliki nama yang sama dengan kolom Anda, jadi ketika kueri melihat

WHERE SCOTT.EMP.DEPTNO = deptno

itu menafsirkan deptno sebagai SCOTT.EMP.DEPTNO , artinya benar untuk semua nilai deptno . Ubah nama parameter input Anda dan kueri akan berfungsi seperti yang diharapkan.

Anda juga harus menggunakan NVL untuk memastikan bahwa individu SUM nilai bukan NULL , seolah-olah salah satunya adalah NULL yang akan membuat jumlah mereka NULL juga yaitu

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Memeriksa Nilai Parameter NLS di Oracle Database

  2. Masalah Performa saat Memperbarui Tabel dari Tabel Lain

  3. ORA-00936:oracle ekspresi hilang

  4. peringatan:fungsi dibuat dengan kesalahan kompilasi

  5. Memfilter Log Peringatan di EM13c