, поскольку вы имеете дело со «сдвигом» времени, вам придется выполнить эту математику в своем уравнении, чтобы «подделать». Что-то вроде
SELECT
count(O.orderid) as Number_of_Orders,
concat(
MonthName( Date_Sub( FROM_UNIXTIME(O.`date`), INTERVAL 10 DAY )),
' - ',
Year( Date_Sub( FROM_UNIXTIME(O.date), INTERVAL 10 DAY) )
) as Ordered_Month,
sum(O.total) as TotalAmount,
Month( Date_Sub( FROM_UNIXTIME(O.`date`), INTERVAL 10 DAY )) as Month_of_Year,
Year( Date_Sub( FROM_UNIXTIME(O.date), INTERVAL 10 DAY )) as Sale_Year
FROM
orders O
group by
Month_of_Year,
Sale_Year
order by
Sale_Year DESC,
Month_of_Year DESC
Итак, по сути, вы берете даты например: 11-31 марта + 1-10 апреля и вычитаете из них "10 дней" ... так что для запроса они будут выглядеть как 1-31 марта, и 11-30 апреля будут отображаться как 1-20 апреля + май и т. Д. Для отдыха каждого года ...