MYSQL查询检索当前月份数据以及上个月检查

时间:2012-11-10 18:58:33

标签: mysql

我有一张表work_history('id','name','work','work_month','work_year')。

我需要查询当前当前月份数据,但如果当前月份不存在数据,则在这种情况下检索上个月的数据.....直到那时数据未找到。 NLY 对于Ex-如果发现11-2012的数据,那么只检索这些数据,不需要检查上个月,但如果没有找到,那么检查上个月10-2012。如果再次找不到,请查看09-2012。

提前致谢

1 个答案:

答案 0 :(得分:0)

您想要的月份是数据中可用的最大月份。它必须是当前月份或最接近它。所以这样的查询应该如下:

select ......
from work_history
where work_month = (select max(work_month) from work_history)

请注意,如果列work_month是char列,则可能需要将数据转换为日期类型以便进行正确比较。基于上例中的格式:

select ......
from work_history
where str_to_date(work_month,'%m-%Y') = (select max(str_to_date(work_month,'%m-%Y')) from work_history)

修改

在所有评论之后,以下查询应该修复我的错误,并根据用户的ID提供数据:

select wh.*
from work_history wh, 
  (select id, max(str_to_date(work_month,'%m-%Y')) as mx_month 
   from work_history 
   where str_to_date(work_month,'%m-%Y') <= curdate()  
   group by id             
  ) wh2
where wh.id=wh2.id
and str_to_date(wh.work_month,'%m-%Y') = wh2.mx_month