offer_date
として は数値であり、実際の日付よりも精度が低いため、機能する可能性があります...
-実際の日付をYYYYMM
形式の文字列に変換します
-その値をINTに変換します
-結果を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
また、create_date
ですべての操作を行うことによって 1つの値に対してのみ処理を行います。
さらに、offer_date
を操作しましたか そのフィールドでインデックスを利用することはできないため、SEEKの代わりにSCANを強制します。