如何获得总和以及这个拉拉维尔雄辩的查询



数据库结构:
表:sales_payments
列:id,payer_id,payment_status,金额,...

请参阅此雄辩的查询。 它工作正常,但现在我需要金额键的总和以及这个给定的雄辩查询和 where 条件。

$query =  SalesPayment::with(['abc.xyz'])
->whereHas('abc.xyz', function ($query) use ($options) {
$query->where('xyz_id',$options['xyz_id']);
});
$query->where(['key3' => key3(), 'payment_status' => PAYMENT_STATUS_SUCCESS]);
$query->orderBy('created_at', 'desc');
return $query->paginate(config('constants.PAGE_LIMIT'));

可能的解决方案

只需按照下面提到的方式进行选择

$query =  SalesPayment::select('*', DB::raw('SUM(amount) AS total_sale_amount')->with ....

我已经测试了这个解决方案,它工作正常。

如果有比这更好的解决方案,请告诉我。我也在寻找其他一些解决方案。

编辑:但是这个解决方案有一个问题,当我把聚合函数(总和(放在选择中时,它只返回一条记录,否则它会返回多条记录。

可以在查询上使用sum方法。

$amount = $query->sum('amount');

将执行具有相同条件的新查询以计算列的总和。

https://laravel.com/docs/6.x/queries#aggregates

相关内容

  • 没有找到相关文章

最新更新