2015-09-03 4 views
-1

У меня есть следующие данные в MySQL:Выбор последнего дня каждого месяца?

+------------+-------+ 
| myDATE  | delta | 
+------------+-------+ 
| 2015-08-29 | 12 | 
| 2015-08-30 | 12 | 
| 2015-08-31 | 10 | 
| 2015-09-01 |  0 | 
| 2015-09-02 | 0.15 | 
+------------+-------+ 

Я хочу, чтобы выполнить запрос, который будет выбрать последний день каждого месяца и показать данные. Я думал, что он работал, но не показывал вчерашние данные.

select mydate, delta from data group by date_format(mydate, '%Y-%m'); 

Результаты в:

+------------+-------+ 
| mydate  | delta | 
+------------+-------+ 
| 2015-08-29 | 12 | 
| 2015-09-01 |  0 | 
+------------+-------+ 

Что мне не хватает?

Я ищу его, чтобы вернуться в следующем: (т. Е В последний день каждого месяца на запись)

+------------+-------+ 
| myDATE  | delta | 
+------------+-------+ 
| 2015-08-31 | 10 | 
| 2015-09-02 | 0.15 | 
+------------+-------+ 

ответ

2
select last_day(mydate), sum(delta) from data group by last_day(mydate) 

LAST_DAY это функция, которая возвращает последний день месяца, данная дата

https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_last-day

ответить на обновленный вопрос

select data.`myDate`, data.delta from data inner join 
(select max(`myDate`) myDate from data group by date_format(mydate, '%Y-%m')) a 
on a.myDate = data.myDate 
+0

Спасибо, не совсем то, что я ищу. Я обновил OP, чтобы быть более ясным. – Greg

+0

Получение синтаксической ошибки выше - я думаю, ее потому, что а) отсутствует. Попробовал поместить его в несколько мест, но не повезло :( – Greg

+0

Хмм - теперь его предоставление Неизвестный столбец «a.myDate» в разделе «on» – Greg