【问题标题】:get sum of all the transactions of each user for specific month获取每个用户在特定月份的所有交易的总和
【发布时间】:2018-08-23 09:32:47
【问题描述】:

我正在开发小型金融网络应用程序,我需要生成一份所有用户的月度综合报告,其中显示每个用户在一个月内进行的所有交易的总数。表结构如下。

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帮助我找出总和。

【问题讨论】:

标签: mysql laravel laravel-query-builder


【解决方案1】:

你可以这样做:

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

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

您也可以使用whereBetween(),但请检查它是否可以正确处理日期。

【讨论】:

  • 这没有指定具体的月份。
  • 对不起,我忘记了日期查询。我更新了我的答案。碳日期当然是例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 2021-08-08
相关资源
最近更新 更多