Если вы посмотрите на пункт where
where (from_unixtime(`tbl_services`.`datetime`) > (now() - interval 6 month))
Я полагаю, что это получает даты из всего, начиная с 6 месяцев назад до сегодняшнего дня.Если вы хотите 12 месяцев в 2011 году, я думаю, вы могли бы заменить эту строку на что-то вроде:
where (from_unixtime(`tbl_services`.`datetime`) >= DATE('2011-01-01 00:00:00'))
AND (from_unixtime(`tbl_services`.`datetime`) < DATE('2012-01-01 00:00:00'))
Хотя я не знаю MySQL (только SQLServer), поэтому, если это не сработает, надеюсь, кто-то другой сможетскажи мне, где я ошибся.
Это можно упростить до:
where (from_unixtime(`tbl_services`.`datetime`) >= '2011-01-01')
AND (from_unixtime(`tbl_services`.`datetime`) < '2012-01-01')