【问题标题】:Select max date in a group where max date is less than current date在最大日期小于当前日期的组中选择最大日期
【发布时间】:2015-02-21 16:47:03
【问题描述】:

我正在尝试对此表数据执行 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、子查询和组,这是迄今为止我设法做到的“最好的”:

"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   |

【问题讨论】:

  • 我在这里的自动格式化显然失败了,试图修复它,对不起。
  • 你一开始就讲分组,结果不想分组?我不清楚你为什么只想要 12 项目?

标签: mysql date subquery max


【解决方案1】:

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

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

【讨论】:

  • 语法错误:CURRENT_DATE); 必须是 CURRENT_DATE();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多