Вы пытаетесь использовать результаты подвыбора в другом выборе, что является ограничением в SQL
. Этот подход может сработать, но я думаю, что есть что-то более простое. Я бы просто присоединился к соотношению в.
Order::whereBetween(
'created_at', [
$cloneFrom->startOfMonth()->toDateTimeString(),
$cloneFrom->endOfMonth()->toDateTimeString(),
])
->leftJoin('order_items', 'orders.id', 'order_items.order_id')
->sum('order_items.original_total');
Без суммы запрос выглядел бы примерно так, без некоторых столбцов для упрощения форматирования.
order.id | order_items.id | order_items.original_total
1 1 10
1 2 10
1 3 10
2 4 5
2 5 5
Если вы делаете обычные Запросы, у вас будут двойные заказы в вашем возврате, но так как вы заботитесь только о сборе всех итогов, вы можете использовать этот подход, производительность должна быть действительно хорошей, так как она объединяет внешние ключи.