Laravel Query Builder не работает, Показать ошибку - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть следующий запрос, используемый в Laravel Framework

$student_attendance_search_result = DB::table('tbl_student_attendance')
        ->join('tbl_student_admission', 'tbl_student_attendance.student_id', '=', 'tbl_student_admission.student_id')
        ->select(DB::raw('tbl_student_attendance.*,tbl_student_admission.student_id,tbl_student_admission.student_full_name_english,tbl_student_admission.class,tbl_student_admission.section,tbl_student_admission.roll_no, count(case when attendance_status ="Absent"  then 1 end) as total_absent,count(case when attendance_status ="Present" then 1 end) as total_present,count(case when attendance_status ="Leave" then 1 end) as total_leave,count(distinct date) as total_class'))
        ->where('tbl_student_attendance.academic_year', $academic_year)
        ->where('tbl_student_admission.class', $classs)
        ->where('tbl_student_admission.section', $section)
        ->where('tbl_student_attendance.month', $month)
        ->groupBy('tbl_student_admission.student_id')
        ->get();

Выдает следующее исключение, когда я пытаюсь запустить его

SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1055 'db_smsfinal1user.tbl_student_attendance.student_attendance_id' не является в GROUP BY (SQL: выберите tbl_student_attendance. *, tbl_student_admission. student_id, tbl_student_admission. student_full_name_english, tbl_student_admission. class, tbl_student_admission. section, tbl_student_admission. roll_no, кол-во (случай, когда Participance_status = "Отсутствует", затем 1 конец) как total_absent, считается (случай, когда Participance_status = "присутствует", затем 1 конец), как total_present, считается (case когда serveance_status = "оставить", то 1 конец) как total_leave, количество (отличная дата) как total_class из tbl_student_attendance внутреннее соединение tbl_student_admission включено tbl_student_attendance. student_id = tbl_student_admission. student_id где tbl_student_attendance. academic_year = 2018 и tbl_student_admission. class = 2 и tbl_student_admission. section = Нет и tbl_student_attendance. month = сентябрь сгруппировать по tbl_student_admission. student_id)

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 09 сентября 2018

использовать DB :: raw в качестве аргументов выбора

DB::select( DB::raw('student_id,count(case when attendance_status ='Absent' then 1 end) as absent_count,count(case when attendance_status ='Present' then 1 end) as present_count,count(case when attendance_status ='Leave' then 1 end) as leave_count,count(distinct date) as Tot_count') )->from(..)->groupBy(...);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...