php - 在 Laravel 中按类别计算总金额
问题描述
我做这个查询:
$expenses = Expense::where('team_id', Auth::user()->currentTeam->id)
->with(['categories'])
->orderBy('entry_date', 'DESC')
->get();
ExpenseSumByCategoryResource :
return [
'id' => Hashids::encode($this->id),
'entry_date' => $this->entry_date,
'amount' => $this->amount,
'category' => $this->category->name
];
回复 :
"expenses": [
{
"id": "GO3W1MkgWkngpnByQ6",
"entry_date": "2020-10-14",
"amount": "50.00",
"category": "Health"
},
{
"id": "7vK6bz0gnG7JBOYRLD",
"entry_date": "2020-10-14",
"amount": "30.00",
"category": "Uncategorize"
},
{
"id": "7vK6bz0gnG7JBOYRLD",
"entry_date": "2020-10-14",
"amount": "30.00",
"category": "Health"
},
{
"id": "7vK6bz0gnG7JBOYRLD",
"entry_date": "2020-10-14",
"amount": "30.00",
"category": "Food"
},
]
我想按类别计算“金额”的总和。
理想情况下,我希望得到这样的结果:
"expenses": [
{
"category": "Health"
"total_amount": "80.00",
},
{
"category": "Uncategorized"
"total_amount": "30.00",
},
{
"category": "Food"
"total_amount": "30.00",
},
]
解决方案
您可以尝试添加一个select()
和groupBy()
这对您的查询有意义:
$expenses = Expense::select('category', DB::raw('SUM(amount) AS total_amount'))
->where('team_id', Auth::user()->currentTeam->id)
->groupBy('category')
->with(['categories'])
->orderBy('category')
->get();
推荐阅读
- javascript - Cypress 两个数组的总和
- reactjs - 渲染功能不渲染项目
- javascript - 在点字符串的末尾传递参数
- android - 我的应用程序用户如何在无需租用服务器的情况下查看大量图像(并可能下载它们)
- python - 如何修改列表元素列表python
- c++ - 使用小缓冲区时 zlib 膨胀会损坏
- java - threadlocal 真的比@RequestScope 更高效吗?
- python - 有没有办法将大量数据输入 Firebase Firestore 数据库
- html - 如何使用 Angular 检索 firebase 数据库内容的所有 id?
- java - 调用我的方法特定次数