我的代码Laravel回调函数GroupBy月出了什么问题

时间:2019-01-28 06:45:19

标签: mysql eloquent laravel-4.2 function-query

我就要按月来算我的pallet_condition 0,1,2,3和组它 但是我总是会收到这样的错误,请帮助我的代码出问题。 有毛病我DATE_FORMAT?

我的错误

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'created_at' in group statement is ambiguous (SQL: select count(*) as aggregate from `liip_psrm` inner join `liip_psrm_items` on `liip_psrm`.`id` = `liip_psrm_items`.`psrm_items_id` where date(`liip_psrm_items`.`created_at`) >= 2018-10-09 and date(`liip_psrm_items`.`created_at`) <= 2019-01-31 and `liip_psrm`.`status` = 0 and `liip_psrm`.`customer_id` = 14 and `pallet_condition` = 0 group by WEEK(created_at) order by WEEK(created_at) asc) 

我的回调函数

$problem_condition_computations = function($condition) use ($psrm_maintenance, $start, $end, $customers){
        return DB::table('liip_psrm')
        ->join('liip_psrm_items', 'liip_psrm.id', '=', 'liip_psrm_items.psrm_items_id')
        ->whereDate('liip_psrm_items.created_at', '>=', $start)
        ->whereDate('liip_psrm_items.created_at', '<=', $end)
        ->select(
                DB::raw("DATE_FORMAT(liip_psrm_items.created_at, '%Y-%m-%d') AS dates
                "))
                ->where('liip_psrm.status','=', 0)
                ->where('liip_psrm.customer_id','=',$customers)
                ->where('pallet_condition', $condition)
                ->groupBy('dates')   
                ->count();
      };

1 个答案:

答案 0 :(得分:0)

您在groupBy中使用的

“日期”字段是别名,因此它无法识别它并且无法正常工作。

与您在“选择”中使用的

DB::raw("DATE_FORMAT(liip_psrm_items.created_at, '%Y-%m-%d') AS dates")

将其放入GroupBy &它会工作。

希望,这会有所帮助,如果您仍然遇到困难,请告诉我。