与Groupby求和

时间:2019-08-07 08:13:11

标签: php laravel laravel-5

我正在尝试使用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求和?

1 个答案:

答案 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();`

希望这会起作用