我正在尝试对此表数据执行mysql查询,该查询将返回小于按预订编号分组的当前日期的最新日期。
表格数据示例:
bookingnumber | booking_date |
------------------------------
11 | 2015-02-21 |
11 | 2015-02-22 |
11 | 2015-02-20 |
12 | 2015-02-20 |
13 | 2015-02-22 |
------------------------------
如果当前日期是2015-02-21我正在努力获得这个结果:
bookingnumber | booking_date |
------------------------------
12 | 2015-02-20 |
我已尝试过MAX,subquerys和群组,这是我迄今为止所做的“最佳”:
"select bookingnumber, booking_date
FROM table
WHERE
(select max(booking_date) from table as f where f.bookingnumber = table.bookingnumber)
AND booking_date < CURRENT_DATE"
然而,这给了我结果:
bookingnumber | booking_date |
------------------------------
12 | 2015-02-20 |
11 | 2015-02-20 |
答案 0 :(得分:1)
以下内容将返回您要求的结果。它将返回没有当前或未来预订日期的最后预订日期:
SELECT bookingnumber, max(booking_date)
FROM table
GROUP BY bookingnumber
HAVING max(booking_date) < CURRENT_DATE();