Обратите внимание, что предложение group by
не выглядит правильным.
Вы группируете по названию месяца. Таким образом, если ваши данные распространяются более чем на 12 месяцев, у вас все равно останется 12 записей только с набором результатов, с записями, имеющими один и тот же месяц, но разные годы, сгруппированные вместе.
Вы должны добавить год в группу по Предложение, например, так:
\App\User::select(DB::raw('SUM(Comptabilise)* -1 as `data`'), DB::raw("YEAR(date) year"),DB::raw('MONTH(date) months'), DB::raw('MONTHNAME(date) month'))
->groupBy('year')
->groupBy('months')
->orderBy('year', 'ASC')
->orderBy('months', 'ASC')
->get();
Примечание: MySQL имеет функцию YEAR()
, я использовал ее в запросе, потому что она более соответствует MONTH()
, чем при использовании метода преобразования строк, например DATE_FORMAT()
.