【问题标题】:Fetching and summing data from database - laravel从数据库中获取和汇总数据 - laravel
【发布时间】:2019-12-30 16:19:54
【问题描述】:

我的数据库中有一条如下所示的记录

表格

id   client_id   to_pay  due   session 
 1     12         100     50     ***
 2     24         80      30     ***
 3     12          0      10     ***
 4     24          0       5     ***

现在在下面的查询中,我想通过根据 client_id 对数据进行分组来从上表中获取所有数据,但在查询中,我还需要为每个客户端总结 to_paydue回复。

请问我该怎么做?

控制器

   public function collectionPost(Request $request)
    {

        $fees = Collection::select('*')
        ->where('session',$request->get('session'))->groupby('client_id')->sum('due')
        ->get();

        return $fees;
    }

【问题讨论】:

  • 您遇到错误了吗?知道会很有帮助。我们会知道您的数据库是否处于严格模式。
  • 此代码仅返回due@N69S 的总和。但我希望客户的其他详细信息也出现在响应中,因为我使用的是 select (*)

标签: php laravel


【解决方案1】:

当您使用sum 方法时,它会覆盖select 以获得正确的结果。

您可以在不使用 sum 方法的情况下构建您的选择。

$fees = Collection::select(DB::raw('SUM(due) as total_due'), DB::raw('SUM(to_pay) as total_to_pay'))
        ->where('session',$request->get('session'))->groupby('client_id')
        ->get();

        return $fees;

并为您的选择添加更多内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2019-08-15
    相关资源
    最近更新 更多