在最大日期小于当前日期的组中选择最大日期

时间:2015-02-21 16:47:03

标签: mysql date subquery max

我正在尝试对此表数据执行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   |

1 个答案:

答案 0 :(得分:1)

以下内容将返回您要求的结果。它将返回没有当前或未来预订日期的最后预订日期:

SELECT bookingnumber, max(booking_date)
FROM table
GROUP BY bookingnumber
HAVING max(booking_date) < CURRENT_DATE();