Masalahnya, Oracle tidak tahu bahwa get_fiscal_year_start_date (SYSDATE)
mengembalikan satu hasil tunggal. Jadi diasumsikan bahwa itu akan menghasilkan banyak baris.
Jelas saya tidak memiliki test harness, tetapi versi kueri Anda ini harus menghapus gabungan cartesian join.
SELECT RTRIM (position) AS "POSITION",
. // Other fields
.
.
FROM schema.table x
, ( select get_fiscal_year_start_date (SYSDATE) as fiscal_year
from dual ) fy
WHERE hours > 0
AND pay = 'RGW'
AND NOT EXISTS( SELECT position
FROM schema.table2 y
where y.date = fy.fiscal_year
AND y.position = x.position )
Oracle mengetahui bahwa DUAL memiliki satu baris, dan karenanya sub-kueri akan mengembalikan satu nilai.