Als offer_date
is een getal en is minder nauwkeurig dan uw echte datums, dit kan werken...
- Converteer uw echte datum naar een tekenreeks met de indeling YYYYMM
- Zet die waarde om naar een INT
- Vergelijk het resultaat met uw offer_date
SELECT
*
FROM
offers
WHERE
offer_date = (SELECT CAST(to_char(create_date, 'YYYYMM') AS INT) FROM customers where id = '12345678')
AND offer_rate > 0
Ook door alle manipulaties uit te voeren op de create_date
u doet de verwerking slechts op één waarde.
Bovendien, had u de offer_date
. gemanipuleerd? je zou geen enkele index op dat veld kunnen gebruiken, en dus SCAN's forceren in plaats van SEEK's.