SELECT Income.id, max_date, MAX(value)
FROM Income
INNER JOIN (SELECT id, max(date) as max_date FROM Income GROUP BY id) IM
ON Income.id = IM.id AND Income.date = max_date
GROUP BY Income.id, max_date
SELECT i.id, max(date), MAX(value)
FROM Income as i
INNER JOIN (SELECT id, max(date) as max_date FROM Income GROUP BY id) IM
ON i.id = IM.id AND i.date = IM.max_date
GROUP BY i.id, IM.max_date
Вот, немного переделал ваш вариант. Работает. Спасибо!