Eli*_*Eli 5 sql join laravel eloquent
我有2个表要使用查询join,即loans和amortizations表。
Loans表中有许多摊销,所以loans.id是一个参考amortizations.loan_id的amortizations表格。
Loan id:3存在两次amortizations table,每个都有value=10,800。
Loan id:5在中也存在两次amortizations table,每个都有一个value=11,100和相同的搭配Loan id:11,在amortizations table每个中也存在两次都有一个value=5400。
当您加起来时,total是54,600。但我希望ID可以区分,以便值不会相加两次。因此总数等于27,300。我下面的现有查询返回一个54,600值,而不是27,300甚至distinct()在Laravel中使用它。我将如何实现?
Controller query
$oneToThirtyDue = Amortization::distinct('amortizations.loan_id')
->join('loans', 'loans.id', '=', 'amortizations.loan_id')
->select('loans.loan_type',\DB::raw('SUM(loans.loan_balance) as total_val'))
->where('amortizations.payment_status',0)
->where('amortizations.schedule', '<', date('Y-m-d'))
->where('amortizations.past_due', '<=', 30)
->groupBy('loans.loan_type')
->orderBy('loans.loan_type')
->get();
Run Code Online (Sandbox Code Playgroud)
请帮忙。非常感谢。
$idsDue = Amortization::distinct()
->select('loan_id')
->where('payment_status',0)
->where('schedule', '<', date('Y-m-d'))
->where('past_due', '<=', 30)
->get();
$oneToThirtyDue = Loan::select('loan_type',\DB::raw('SUM(loan_balance) as total_val'))
->whereIn('id',$idsDue)
->groupBy('loan_type')
->orderBy('loan_type')
->get();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |