Если в вашем запросе GROUP BY
, вы можете выбрать только те столбцы, которые находятся в GROUP BY
или являются агрегированной функцией, такой как SUM()
, MIN()
, MAX()
et c.
Если я правильно понимаю ваши данные, вы можете извлечь SUM()
в отдельном запросе, где вы JOIN
добавите его в основной запрос.
DB::table('project_bills as pb')
->join('project_deliveryorder as pdo', 'pb.id_deliveryorder', '=', 'pdo.id')
->join(DB::raw('(SELECT id_bill, SUM(payment_amount) AS TOTAL
FROM project_bills_payment
GROUP BY id_bill) AS pbp'), 'pb.id', '=', 'pbp.id_bill')
->select('pb.*',
'pdo.totalcost',
'pdo.deliveryorder_number',
'pdo.deliveryorder_subject',
'pbp.TOTAL')
->orderBy('pb.bill_date', 'DESC')
->orderBy('pb.id', 'DESC')
->get();
Отключение строгого режима или отключение ONLY_FULL_GROUP_BY
, на мой взгляд, не очень хорошая идея, и если вы можете избежать этого, переработав свой запрос, обычно это намного лучше.