Я пытаюсь выполнить запрос 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 |
Я, очевидно, не смог справиться с автоматическим форматированием здесь, пытаясь исправить это, извините. – jboo
Вы говорите о группировке в начале, но тогда не хотите группировки в результате? Я не понимаю, почему вам нужен только элемент «12»? – Wain