Usa:
AND oh.tran_date BETWEEN TRUNC(SYSDATE - 1) AND TRUNC(SYSDATE) - 1/86400
Riferimento:TRUNC
Chiamare una funzione su tran_date
significa che l'ottimizzatore non sarà in grado di utilizzare un indice (supponendo che ne esista uno) ad esso associato. Alcuni database, come Oracle, supportano indici basati su funzioni che consentono di eseguire funzioni sui dati per ridurre al minimo l'impatto in tali situazioni, ma i DBA IME non lo consentono. E sono d'accordo:in questo caso non sono davvero necessari.