Сумма 4 полей в таблице с laravel - PullRequest
0 голосов
/ 11 октября 2018

Мне нужно найти сумму из 4 значений полей таблицы для каждого идентификатора клиента, но я получаю сумму всех пользовательских значений, мне нужна сумма каждого параметра для хранения

 $vehpaymenthtry = Stock::join('bookings', 'bookings.chasis_no', '=', 'stocks.frame_no')
            ->join('branches', 'branches.branch_id', '=', 'bookings.branch_id')
            ->join('amounts', 'amounts.customer_id', '=', 'bookings.customer_id')
            ->select(DB::raw("SUM(finance_amount+cash+cheque_dd+exchange_amount) as totalpayable") ,'bookings.created_at', 'bookings.customer_id', 'bookings.customer_name', 'stocks.model_variant', 'branches.name as brname', 'stocks.color', 'stocks.frame_no', 'stocks.engine_no')
            ->whereDate('bookings.created_at', '>=', $request->input('fromdate'))
            ->whereDate('bookings.created_at', '<=', $request->input('todate'))
            ->where([['amounts.status', '=', 0],['branches.status', 0]])->get();  

вот скриншот результата

enter image description here

и снимок экрана базы данных

enter image description here

1 Ответ

0 голосов
/ 11 октября 2018

Вам нужно сгруппировать по customer_id что-то вроде этого:

   $vehpaymenthtry = Stock::join('bookings', 'bookings.chasis_no', '=', 'stocks.frame_no')
        ->join('branches', 'branches.branch_id', '=', 'bookings.branch_id')
        ->join('amounts', 'amounts.customer_id', '=', 'bookings.customer_id')
        ->select(DB::raw("SUM(finance_amount+cash+cheque_dd+exchange_amount) as totalpayable") ,'bookings.created_at', 'bookings.customer_id', 'bookings.customer_name', 'stocks.model_variant', 'branches.name as brname', 'stocks.color', 'stocks.frame_no', 'stocks.engine_no')
        ->whereDate('bookings.created_at', '>=', $request->input('fromdate'))
        ->whereDate('bookings.created_at', '<=', $request->input('todate'))
        ->where([['amounts.status', '=', 0],['branches.status', 0]])->groupBy('bookings.customer_id')->get(); 
...