grade_id
grade_name
price
update_date.

一个等级有几项记录,日期和价格不同…:
grade_id   grade_name  price  update_date (y-m-d)
1           A          8$      2011-02-01
1           A          10$     2011-03-01
1           A          20$     2011-04-01
2           B          10$     2011-02-01
2           B          20$     2011-03-01
2           B          30$     2011-04-01

如何使用select查询获取最近更新的价格(但在过去)。
得到:
1           A          10$     2011-03-01
2           B          20$     2011-03-01

结果…(因为最近的价格,和过去的日期..
谢谢
戴维

最佳答案

  SELECT t1.grade_id, t1.grade_name, t1.price, t1.update_date
    FROM my_tbl t1
         LEFT JOIN my_tbl t2 on t2.grade_id = t1.grade_id
     AND t2.update_date > t1.update_date
     AND t2.update_date < CURRENT_DATE
   WHERE t1.update_date < CURRENT_DATE
     AND t2.grade_id IS NULL
ORDER BY t1.grade_name

关于mysql - 选择最近的日期,但在记录列表中小于今天的日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5364092/

10-08 22:05
查看更多