Как получить общую сумму в поле таблицы базы данных месяц мудрый текущего года с помощью laravel
Так что у меня есть база данных с суммой и created_at поле на нем, и я хочу, чтобы общая сумма в месяц текущего года и или каждый год.
$sql = 'SELECT SUM(amount) as "Amount",MONTHNAME(created_at) as "Month"
FROM transactions WHERE YEAR(created_at) = YEAR(CURDATE())
GROUP BY YEAR(created_at),MONTH(created_at)';
DB::statement($sql);
Фактическая Таблица
ID amount created_at
1 1000 2019-10-24
2 234 2019-11-11
3 122 2019-09-04
4 5200 2019-09-14
ожидаемый результат
ID Amount Month
1 6322 September
2 234 November
Синтаксическая ошибка или нарушение прав доступа: 1055 дБ.стол.created_at не в группе(в SQL: выбрать сумма(сумма) как "общая сумма", функцией monthname(created_at) как " месяц
Пожалуйста, что он говорит. Однако если запустить этот запрос на phpmyadmin он отлично работает

Ответы - Как получить общую сумму в поле таблицы базы данных месяц мудрый текущего года с помощью laravel / How to get the total amount in a database table field month wise of the current year using laravel

24.10.2019 04:29:34
Сначала установите strict => false
в app\config\database -> mysql
после этого запустите php artisan optimize
затем
$sql = DB::table('transactions')
->select(DB::raw('SUM(amount) as Amount,MONTHNAME(created_at) as Month Name'))
->where(DB::raw('YEAR(created_at) = YEAR(CURDATE())'))
->groupBy('created_at')
->get();

created_at
'


24.10.2019 06:56:01
Вы группируете по частям created_at
, а затем ссылаетесь на created_at
при SELECT
. Проблема в том, что при группировании результатов в запросе могут использоваться только агрегатные функции и сгруппированные объекты. Если вы используете MONTH(created_at)
в select вместо MONTHNAME
, вы должны быть в порядке (или вы можете group by YEAR, MONTHNAME
вместо этого и продолжать использовать MONTHNAME
в своей проекции