Хотел бы предложить еще один вариант, очень простой:
SELECT F_YEAR(DATE), SUM(PRICE)
...
GROUP BY 1
т.е. группировка происходит по первому полю полученного результата.
К сожалению, не знаю как обрабатывается данный запрос разными версиями Interbase/Firebird.
Статья Группировка по значению функции
Модератор: kdv