Получить SUM из последних 2 строк ввода с laravel - PullRequest
0 голосов
/ 11 апреля 2020

у меня есть такая таблица: введите описание изображения здесь

я хочу получить сумму из поля 'total' из ввода последних 2 строк,

это мой код:

$data = DB::table('packagings')->where('plant',$pt->plant)->orderBy('id','desc')->limit(2)->sum('total');

но мой код получает всю сумму из поля 'total'

1 Ответ

0 голосов
/ 11 апреля 2020

Mysql будет суммировать total из таблицы packagings, которая сначала станет одной записью, а затем возьмет 2 записи из одной записи. Поэтому он всегда возвращает всю сумму из поля total.

Способ сбора:

$data = DB::table('packagings')->where('plant',$pt->plant)->latest()->take(2)->get()->sum('total');

Способ построения запросов:

$sub = DB::table('packagings')->where('plant',$pt->plant)->latest()->take(2);
$data = DB::table(DB::raw("({$sub->toSql()}) AS sub"))->mergeBindings($sub)->sum('total');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...