我正在开发小型金融网络应用程序,因此我需要每月生成一份所有用户的常规报告,该报告显示每个用户在一个月内进行的所有交易的总计。表格结构如下。
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
来找出总和。
答案 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');