【问题标题】:Laravel eloquent query to get the result groupBy(month)Laravel 雄辩的查询得到结果 groupBy(month)
【发布时间】:2014-09-16 02:04:11
【问题描述】:

如何使用groupBy(month('start_date')) 得到结果

到现在为止

    $this->data['earnings'] = DB::table('documents')
        ->leftJoin('users','users.id', '=', 'documents.users_id')
        ->leftJoin('users_editors','users_editors.user_id','=','users_id')
        ->groupBy(month ('start_date'), 'DESC')
        ->sum('amount')
        ->get();

我正在尝试为所有编辑 groupBy month 获取收入,这将需要一个月的时间从 start_date 到拥有 groupBy 。 谢谢

【问题讨论】:

    标签: sql laravel eloquent


    【解决方案1】:

    为了使用 (My)SQL 函数,您需要未由 PDO 处理和绑定的原始语句,或者在这种情况下被视为字段名称:

    ->groupBy(DB::raw('month(start_date)'))
    

    为了让它按您的预期工作:

    ->selectRaw('month(start_date) as month, sum(amount) as sum')
    
    ->groupBy(DB::raw('month desc'))
    // or:
    ->groupBy('month')
    ->orderBy('month', 'desc')
    
    ->get();
    

    【讨论】:

    • 感谢您的努力 :) 但这会导致错误提示 unknown column DESC
    • 是的.. 那么我应该如何添加DESC?有什么想法吗?
    • 也将其放入原始语句中。但首先,您的预期结果是什么?显然,您的查询还有更多工作要做,以使其按预期工作。
    • 嗯,是的,说得对。我想让编辑们连同他们自己的文件的金额总和groupBy 月。我已经更改了查询。我只需要知道如何在groupBy 上执行DESC
    • 检查编辑。您不想使用sum() 方法,因为它会返回单行。使用原始选择按聚合分组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 2021-07-23
    • 2016-06-09
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多