Суммируйте атрибуты таблиц отношений после выполнения деления на них - PullRequest
0 голосов
/ 29 марта 2019

Я не мог придумать подходящее название, извините за что. Ситуация следующая:

У меня есть две таблицы: montages и orders, где Montage принадлежит Order. Моя цель - создать один запрос MySQL, который будет возвращать одно значение с плавающей запятой, чтобы представить сумму значений для нескольких монтажов. Для каждого монтажа в запросе мне нужно разделить бюджет его заказа на количество монтажов, которые относятся к одному заказу. Результат этого деления должен быть атрибутом ecah montage. Наконец, я хочу суммировать эти атрибуты и получить одно значение.

Я пробовал множество вариантов чего-то подобного следующему, но ни один из них не был написан в правильном синтаксисе, поэтому я продолжал получать ошибки:

$sum = App\Montage::where(/*this doesn't matter*/)
->join('orders', 'montages.order_id', '=', 'orders.id') //join the orders table
->select('montages.*, orders.budget') //include the budget column
->selectRaw('count(* where order_id = order_id) as all') //count all the montages of the same order and assing that count to the current montage
->selectRaw('(orders.budget / all) as daily_payment') //divide the budget of the order by the count; store the result as `daily_payment`
->sum('daily_payment') //sum the daily payments

Я действительно потерял с правильным синтаксисом и не могу понять это. Я бы оценил это как довольно простую задачу для людей, которые знают свое дело, но, к сожалению, я не являюсь одним из них ... Любая помощь очень ценится!

...