Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在laravel--SQLSTATE[42803]上正确分组:分组错误:7错误_Php_Laravel_Postgresql - Fatal编程技术网

Php 如何在laravel--SQLSTATE[42803]上正确分组:分组错误:7错误

Php 如何在laravel--SQLSTATE[42803]上正确分组:分组错误:7错误,php,laravel,postgresql,Php,Laravel,Postgresql,请帮助我,我有一个这样的代码,但在代码组中有一个问题 public function table(Request $request) { $order = $request->input('columns'); $tahun_st = date('Y'); if($order[9]['search']['value']){ $tahun_st = $order[9]['search']['value']; } if($tahun

请帮助我,我有一个这样的代码,但在代码组中有一个问题

 public function table(Request $request)
{
    $order = $request->input('columns');
    $tahun_st = date('Y');

    if($order[9]['search']['value']){
        $tahun_st = $order[9]['search']['value'];
    }

    if($tahun_st == null || $tahun_st == ''){ 
        $tahun_st = date('Y');
    }

    $data =  DB::table('pegawais')->select('pegawais.*')
                        ->selectRAW('sum(surat_tugas_nominatifs.jml_hari) as jumlah_hari')
                        ->selectRAW('sum(surat_tugas_nominatifs.tiket + surat_tugas_nominatifs.taksi_tujuan + surat_tugas_nominatifs.taksi_awal + surat_tugas_nominatifs.trans_short_dist + surat_tugas_nominatifs.transport_lokal :: DOUBLE PRECISION)  AS transport')
                        ->selectRAW('sum(COALESCE(surat_tugas_nominatifs.lama_inap * surat_tugas_nominatifs.cost_inap)) as penginapan')
                        ->selectRAW('SUM (CASE WHEN surat_tugass.jenis_st_id = 5 THEN COALESCE (surat_tugas_nominatifs.uang_rapat * (( 100 - surat_tugas_nominatifs.pajak ) / 100 :: DOUBLE PRECISION )) WHEN surat_tugass.jenis_st_id = 2 THEN COALESCE ((surat_tugas_nominatifs.fb + surat_tugas_nominatifs.fd ) * (( 100 - surat_tugas_nominatifs.pajak ) / 100 :: DOUBLE PRECISION )) WHEN surat_tugass.jenis_st_id = 3 THEN surat_tugas_nominatifs.fb_luar_kota ELSE surat_tugas_nominatifs.jml_hari * surat_tugas_nominatifs.harian END) AS harian')
                        ->leftjoin('surat_tugas_pesertas','surat_tugas_pesertas.pegawai_id', 'pegawais.id')
                        ->leftJoin('surat_tugas_nominatifs', function($join) {
                            $join->on('surat_tugas_nominatifs.peserta_id', 'surat_tugas_pesertas.id')
                                ->where('surat_tugas_nominatifs.jml_hari', '!=' , 0);
                        }) 
                        ->leftJoin('surat_tugass','surat_tugas_pesertas.surat_tugas_id', 'surat_tugass.id')
                        ->leftJoin('view_latest_jabatan_pegawai', 'view_latest_jabatan_pegawai.pegawai_id', 'pegawais.id')
                         ->whereRAW("date_part('year', surat_tugass.tgl_awal) = ". $tahun_st)
                        ->where('surat_tugass.cetak_stat', true)
                        ->where('surat_tugass.jenis_st_id', '!=', 10)//jika bukan narasumberr
                        ->groupBy('pegawais.id');
    if(!auth()->user()->can('rekap surat tugas all')){
        $unit_kerja_org =  DB::table('ktus')->select('*')->where('pegawai_id', auth()->user()->pegawai_id)->first();
        // dd($unit_kerja_org);
        $data = $data->where('view_latest_jabatan_pegawai.org_unit_kerja_id', $unit_kerja_org->organisasi_id);
    }

    $action = [];

    $dataTable = Datatable::create($data)
        ->setId('pegawais.id')
        ->editColumn('action', function ($data) use($request, $tahun_st) {  
            return '<a title="Manage" href="'.route($this->route_list.'.list', ['id' => $data->id, 'tahun' => $tahun_st]).'" class="btn shoot btn-icon-only blue tooltips">
                    <i class="fa fa-tasks"></i>
                </a>';
        })
        ->editColumn('pegawai_nama', function ($data) use($request) {
            return $data->nama;
        })
        ->filterColumn('tahun', function ($query, $key) {
            return $query->whereRAW("date_part('year', surat_tugass.tgl_awal) = ".$key);
        })
        ->editColumn('tahun', function ($data) use($request) {
        })
        ->editColumn('transport', function ($data) use($request) {
            if(Helper::convert_number($data->transport)){
                return  Helper::convert_number($data->transport);
            }else{
                return  '-';
            }
        })
        ->editColumn('uk', function ($data) use($request) {
            // return $data->organisasi_id;
        })
        ->editColumn('penginapan', function ($data) use($request) {
            if(Helper::convert_number($data->penginapan)){
                return  Helper::convert_number($data->penginapan);
            }else{
                return  '-';
            }
        })
        ->editColumn('harian', function ($data) use($request) {
            if(Helper::convert_rupiah($data->harian)){
                return  Helper::convert_number($data->harian);
            }else{
                return  '-';
            }
        })
        ->editColumn('jml_hari', function ($data) use($request) {
            if($data->jumlah_hari){
                $jumlah_hari = $data->jumlah_hari;
            }else{
                $jumlah_hari = 0;
            }
            return $jumlah_hari.' hari';
        })
        ->editColumn('total', function ($data) use($request) {
            $total = 0;
            $total = $data->penginapan + $data->harian + $data->transport;
            if($total != 0 ){
                return Helper::convert_number($total);
            }else{
                return  '-';
            }
        })
        ->defaultAction($action, ['route' => $this->route, 'title' => $this->title, 'param-model' => 'vendor']);

    if ($request->has('dateFilter')) {
        $date = Carbon::createFromTimestamp($request->input('dateFilter'));
    } else {
        $date = Carbon::now();
    }

    $response = $dataTable->make(true);
    return response()->json($response);
}
公共功能表(请求$Request)
{
$order=$request->input('columns');
$tahun_st=日期('Y');
如果($order[9]['search']['value'])){
$tahun_st=$order[9]['search']['value'];
}
如果($tahun_st==null | |$tahun_st==''){
$tahun_st=日期('Y');
}
$data=DB::table('pegawais')->select('pegawais.*'))
->选择Raw('sum(surat_tugas_namignfs.jml_hari)作为jumlah_hari')
->选择RAW('sum(sum)(surat_tugas_namitfs.tiket+surat_tugas_namitfs.taksi_tujuan+surat_tugas_namitfs.taksi_awal+surat_tugas_namitfs.trans_short_dist+surat_tugas_namitfs.transport_lokal::双精度)作为传输')
->选择RAW('sum(COALESCE(surat_tugas_namitfs.lama_inap*surat_tugas_namitfs.cost_inap))作为penginapan')
->选择RAW('SUM(SUM)(当surat_tugass.jenis_st_id=5时的情况)然后合并(surat_tugas_namitfs.uang_rapat*((100-surat_tugas_namitfs.pajak)/100::DOUBLE PRECISION),当surat_tugass.jenis_st_id=2时合并((surat_tugas_namitfs.fb+surat_tugas_namitfs.fd)*((100-surat_tugas_tugas_namitfs.pajak)/100::双精度)当surat_tugass.jenis_st_id=3时,则surat_tugas_namitfs.fb_luar_kota其他surat_tugas_namitfs.jml_hari*surat_tugas_namitfs.harian END)为harian')
->leftjoin('surat_tugas_pesertas'、'surat_tugas_pesertas.pegawai_id'、'pegawais.id')
->leftJoin('surat_tugas_namitfs',函数($join){
$join->on('surat_tugas_namignfs.peserta_id','surat_tugas_peserta.id'))
->其中('surat_tugas_namignfs.jml_hari','!=',0);
}) 
->leftJoin('surat_tugass'、'surat_tugas_pesertas.surat_tugas_id'、'surat_tugas.id')
->leftJoin('view\u latest\u jabatan\u pegawai','view\u latest\u jabatan\u pegawai.pegawai\u id','pegawais.id')
->其中(“日期部分(“年”,surat_tugass.tgl_awal)=“$tahun_st”)
->其中('surat_tugass.cetak_stat',真)
->其中('surat_tugass.jenis_st_id','!=',10)//jika bukan narasumberr
->groupBy('pegawais.id');
如果(!auth()->user()->can('rekap surat tugas all')){
$unit_kerja_org=DB::table('ktus')->select('*')->where('pegawai_id',auth()->user()->pegawai_id)->first();
//dd(单位:组织);
$data=$data->where('view\u latest\u jabatan\u pegawai.org\u unit\u kerja\u id',$unit\u kerja\u org->organasi\u id);
}
$action=[];
$dataTable=dataTable::create($data)
->setId('pegawais.id')
->editColumn('action',函数($data)使用($request,$tahun_st){
返回“”;
})
->editColumn('pegawai_nama',函数($data)使用($request){
返回$data->nama;
})
->filterColumn('tahun',函数($query,$key){
返回$query->whereRAW(“日期部分('year',surat\u tugass.tgl\u awal)=“$key);
})
->editColumn('tahun',函数($data)使用($request){
})
->editColumn('transport',函数($data)使用($request){
if(Helper::convert_number($data->transport)){
return Helper::convert_number($data->transport);
}否则{
返回“-”;
}
})
->editColumn('uk',函数($data)使用($request){
//返回$data->organisi_id;
})
->editColumn('penginapan',函数($data)使用($request){
if(Helper::convert_number($data->penginapan)){
return Helper::convert_number($data->penginapan);
}否则{
返回“-”;
}
})
->editColumn('harian',函数($data)使用($request){
if(Helper::convert_rupiah($data->harian)){
return Helper::convert_number($data->harian);
}否则{
返回“-”;
}
})
->editColumn('jml_-hari',函数($data)使用($request){
如果($data->jumlah_hari){
$jumlah_-hari=$data->jumlah_-hari;
}否则{
$jumlah_hari=0;
}
返回$jumlah_hari。'hari';
})
->editColumn('total',函数($data)使用($request){
$total=0;
$total=$data->penginapan+$data->harian+$data->transport;
如果($total!=0){
return Helper::convert_number($total);
}否则{
返回“-”;
}
})
->defaultAction($action,['route'=>$this->route,'title'=>$this->title,'param model'=>'vendor']);
如果($request->has('dateFilter')){
$date=Carbon::createFromTimestamp($request->input('dateFilter');
}否则{
$date=Carbon::now();
}
$response=$dataTable->make(true);
return response()->json($response);
}
在这里,我的代码如上所述,但编辑列的天数和总不能被过滤。SQLSTATE[42803]错误:分组错误:7错误:列“surat_tugas_namignfs.jml_day”必须出现在GROUP BY子句中,或在聚合函数行1中使用:。。。is_st_id“!=$3 group by“pegawais”。“id”order by“jml_hari”…(SQL:选择“pegawais”*,sum(surat_tugas_Naminatifs.jml_hari)作为数字天,sum(surat_tugas_Naminatifs.tiket+surat_tugas_Naminatifs.taksi_tuju+surat_tugas_tugas_Naminatifs.jml_hari)作为数量天,sum(surat_tugas_Naminatifs.tiket+surat_tugas_Naminatifs.taksi_tujuan+surat_tugas_Naminatifs.jml_hari)作为数量,总计(surat_tugas_Naminatifs.tiket+surat_tugas_Naminatifs.taksi_tuju+surat_tugas_Naminatifs.jml_hari)a