У меня есть таблица в MySQL, где я храню индексы, и мне нужно подсчитать столбец индексов, выдав псевдоним для каждого счетчика.
Я попробовал следующий код, но он не работает, и какЯ новичок в Laravel, я не уверен, как я могу построить этот запрос
$data = Baralho::select(
DB::raw("YEAR(data_entrada) as ano"),
DB::raw("count(id_situacao) as inseridos, id_situacao"),
DB::raw("count(id_situacao = 2) as presos"),
DB::raw("count(id_situacao = 3) as mortos"),
DB::raw("count(id_situacao = 4) as retirados")
)->groupBy("ano")->get();
$geral[] = ['Ano', 'Inseridos', 'Presos', 'Mortos', 'Retirados'];
//$anos = $data->pluck('ano');
foreach($data as $key => $value){
$geral[++$key] = [$value->ano, $value->inseridos, $value->presos, $value->mortos, $value->retirados ];
}
dd($geral);
Мне нужно, чтобы он подсчитал индексы и возвратил результат для каждого псевдонима, например, если в столбце id_situacao
индекс 2
он подсчитывает все 2 индекса и приносит результат с псевдонимом presos
, чтобы я мог вставить эти результаты в мой массив $geral[]
dd ($ geral)Результат
Редактировать:
Я пытался использовать следующий код:
$data = DB::select(
DB::raw('(SELECT YEAR(data_entrada) as ano FROM baralho)'),
DB::raw('(SELECT count(id_situacao) as inseridos FROM baralho)'),
DB::raw('(SELECT count(id_situacao) as presos FROM baralho WHERE id_situacao = 2)'),
DB::raw('(SELECT count(id_situacao) as mortos FROM baralho WHERE id_situacao = 3)'),
DB::raw('(SELECT count(id_situacao) as retirados FROM baralho WHERE id_situacao = 4)')
)->groupBy('ano')->get();;
$geral[] = ['Ano', 'Inseridos', 'Presos', 'Mortos', 'Retirados'];
//$anos = $data->pluck('ano');
//dd($anos);
foreach($data as $key => $value){
$geral[++$key] = [$value->ano, $value->inseridos, $value->presos, $value->mortos, $value->retirados];
//dd($value);
}
dd($geral);
, но получил ошибку:
Symfony \ Component \Debug \ Exception \ FatalThrowableError (E_RECOVERABLE_ERROR) Аргумент 1, передаваемый в Illuminate \ Database \ Connection :: prepareBindings (), должен относиться к массиву типов, данный объект вызывается в /home/u185216683/domains/disquedenuncia.com/sysdados/vendor/laravel/ рамки / SRC / Осветите / База данных/Connection.php в строке 328