Я отправляю данные в chartist.js с помощью контроллера Laravel.Когда я пытаюсь объединить три таблицы для суммирования значений, при присоединении к третьей таблице выходные данные существенно удваиваются.
Следующий запрос получает данные, которые мне нужны, но не суммирует их точно
$chart_stats = Transactions::join('customers', 'customers.id', '=', 'transactions.customer_id')
->join('orders', 'orders.customer_id', '=', 'transactions.customer_id')
->distinct()
->select('customers.region', 'transactions.deposit', 'transactions.purchase_total', 'transactions.finance_amount_paid', 'orders.gov_funding_amount')
->whereIn('customers.region', $selected_regions)
->where('transactions.created_at', '>', $from)
->where('transactions.created_at', '<', $to)
->select(
DB::raw('customers.region as region' ),
DB::raw('sum(transactions.deposit) as deposits'),
DB::raw('sum(transactions.purchase_total) as sums'),
DB::raw('sum(transactions.finance_amount_paid) as finance_paid'),
DB::raw('sum(transactions.deposit+transactions.finance_amount_paid) as total_paid'),
DB::raw('sum(orders.gov_funding_amount) as funding')
)
->groupBy('customers.region')
->orderBy('sums', 'asc')
->get();
Это выведет в массиве следующее:
#original: array:6 [▼
"region" => "Region 1"
"deposits" => "5025.40"
"sums" => "52875.00"
"finance_amount_paid" => "0.00"
"total_paid" => "5025.40"
"funding" => "9228.00"
Должно быть:
#original: array:6 [▼
"region" => "Region 1"
"deposits" => "1706.00"
"sums" => "21271.00"
"finance_amount_paid" => "0.00"
"total_paid" => "1706.40"
"funding" => "3396.00"