我正在尝试使用groupby查找所有行的原因
为此,我使用了以下查询。
$due = DB::table('transactions')
->join('customers','transactions.customer_id','customers.id')
->whereYear('transactions.updated_at', '=', date('Y'))
->where('customers.status','=',0)
->groupBy('transactions.customer_id')
->sum('due');
但是结果仅返回第一行。但是,如果我使用以下查询,它将返回准确的结果。
$query3 = DB::table('transactions')
->join('customers','transactions.customer_id','customers.id')
->whereYear('transactions.updated_at', '=', date('Y'))
->where('customers.status','=',0)
->groupBy('transactions.customer_id')->get();
$due = $query3->sum('due');
为什么为什么我们不能用groupby
求和?
答案 0 :(得分:0)
尝试此代码
$query3 = DB::table('transactions')
->join('customers','transactions.customer_id','customers.id')
->select(DB::raw("sum(due)as new_col ,column1 ,column3 ,column3"))
->whereYear('transactions.updated_at', '=', date('Y'))
->where('customers.status','=',0)
->groupBy('transactions.customer_id')->get();`
希望这会起作用