SELECT Concat(calendar.name, " ", calendar.year) as name, ifnull(date.value1,0) AS value
FROM (SELECT DISTINCT date.year, month.id, month.name FROM date, month) AS calendar
LEFT JOIN date
ON date.year = calendar.year AND date.month_id = calendar.id
ORDER BY calendar.year, calendar.id LIMIT 6 OFFSET 18
ограничиваясь текущим месяцем … последние 6
SELECT Concat(calendar.name, " ", calendar.year) as name, ifnull(date.value1,0) AS value
FROM (SELECT DISTINCT date.year, month.id, month.name FROM date, month) AS calendar
LEFT JOIN date
ON date.year = calendar.year AND date.month_id = calendar.id
WHERE CONCAT(calendar.year, '-', LPAD( calendar.id, 2, '0'))
> LEFT(DATE_SUB(NOW(), INTERVAL 6 MONTH), 7)
ORDER BY calendar.year, calendar.id LIMIT 6