获取特定月份每个用户的所有交易的总和

时间:2018-08-23 09:32:47

标签: mysql laravel laravel-query-builder

我正在开发小型金融网络应用程序,因此我需要每月生成一份所有用户的常规报告,该报告显示每个用户在一个月内进行的所有交易的总计。表格结构如下。

username    amount  date
-----------------------------
a           1000    2018-8-1
b           2000    2018-8-1
c           1500    2018-8-3
b           1700    2018-8-6
b           1100    2018-8-7
a           2000    2018-8-10
c           1600    2018-8-12           

需要获取每个用户在一个月内的交易金额,例如

a : 3000
b : 4800
c : 3100

请帮助我使用laravel query builder来找出总和。

2 个答案:

答案 0 :(得分:-1)

您可以这样做:

$user
->transactions()
->where('date', '>', Carbon::before())
->where('date', '<', Carbon::now())
->get(['user_id', 'amount'])
->sum('amount');

考虑到您在交易和用户模型之间存在关系。您可以适应您的架构。但是@Tim Biegeleisen链接的纯MySQL解决方案可能更节省资源。

您也可以使用whereBetween(),但要确保它可以正确地用于日期。

答案 1 :(得分:-1)

尝试使用以下代码

$amt = DB::table('table_name')->where('username' , 'a')->sum('amount');

来源:Laravel 5.6 documentation