Вот запрос, НЕМНОГО измененный. У меня есть внутренний запрос, который просто захватывает год, месяц и дату последнего события в год / месяц. Затем, присоединившись к этому, я добавил проверку IF (), что если дата начала совпадает с датой запроса «MaxPerMthYr», то установите флаг в 1, в противном случае оставьте его равным нулю. Это может не работать идеально, если у вас есть несколько событий в одну и ту же дату. Если это так, то нужно будет сделать другую модификацию, но она выполнима, чтобы гарантировать правильную запись. Остальная часть вашего PHP-кода должна работать, но теперь у вас будет флаг, который вы искали.
SELECT
id,
title,
description,
dateStart,
dateEnd,
timeStart,
timeEnd,
YEAR(dateStart) AS year,
MONTH(dateStart) AS month,
MONTHNAME(dateStart) AS monthName,
if( dateStart = MaxPerMthYr.LastDatePerGroup, 1, 0 ) as LastEntryPerGroup
FROM
events_general,
JOIN ( select YEAR(dateStart) AS perYear,
MONTH(dateStart) AS perMonth,
max( dateStart ) as LastDatePerGroup
from
events_general
group by
YEAR(dateStart) AS perYear,
MONTH(dateStart) AS perMonth ) MaxPerMthYr
ON Year( Events_General.dateStart ) = MaxPerMthYr.perYear
AND Month( Events_General.dateStart ) = MaxPerMthYr.perMonth
ORDER BY
dateStart