Из того, что я понимаю, вы пытаетесь получить данные за предыдущий месяц с указанием даты. Если это так, вы можете использовать встроенные функции даты, чтобы сделать это.
select *
from table
where concat_ws('-',year,month,day) >= add_months(date_add(concat_ws('-','${yr}','${mth}','${dy}'),1-'${dy}'), -1)
and concat_ws('-',year,month,day) < date_add(concat_ws('-','${yr}','${mth}','${dy}'),1-'${dy}')
Решение предполагает, что год, месяц и день имеют формат гггг, мм и дд. Если нет, отрегулируйте их при необходимости
Кроме того, вам следует рассмотреть вопрос о сохранении date
в виде столбца, даже если он разбит на год, месяц и день.