+1 vote
42 tayangan

jika nilai nya memiliki value A, A- , A/B ,  B+ , B , B- , B/C , C+ , C , C/D , D+ , D.

pada gambar diatas terdapat 2 matakuliah dengan 2 nilai yang berbeda. contohnya pada matakuliah pemrograman dan struktur data terdapat dua nilai yaitu B+ dan B-, dimana nilai terbaiknya yaitu B+. Ekspetasinya seperti dibawah ini

select `class`.`academic_year_id`,
       gc.id                                                            as gc_id,
       users.id,
       gc.grade_midtest,
       gc.grade_finaltest,
       gc.grade_course,
       gc.class_id,
       grade_cpl_class.grade_class_id,
       course.code                                                      as kodematkul,
       course.name                                                      as matkul,
       course.semester_course                                           as semester,
       class.academic_year_id                                           as academic_year_id,
       gc.grade_course                                                  as nilaiMatkul,
       gc.class_id,
       grade_cpl_class.grade_class_id,
       course.code                                                      as kodematkul1,
       course.name                                                      as matkul1,
       class.academic_year_id                                           as tahunajaran,
       course.semester_course                                           as semester1,
       gc.grade_course                                            as nilaiMatkul1,

from `grade_cpl_class`
         inner join `grade_class` as `gc` on `gc`.`id` = `grade_cpl_class`.`grade_class_id`
         inner join `cpl_course` as `cc` on `cc`.`id` = `grade_cpl_class`.`cplmk_id`
         inner join `cpl` as `c` on `c`.`id` = `cc`.`cpl_id`
         inner join `users` on `users`.`id` = `gc`.`student_id`
         inner join `class` on `class`.`id` = `gc`.`class_id`
         inner join `course` on `course`.`id` = `class`.`course_id`
where `gc`.`student_id` = 58
group by matkul
order by `gc`.`created_at` desc
dalam Database oleh  Kawan Berbageek (620 poin) | 42 tayangan

1 Jawaban

+2 vote
Jawaban terbaik

pertama membuat table baru untuk memuat data nilai ip. dengan kolom grade dan bobotnya (score).

dan mengganti  gc.grade_course dengan max(map.score)

select `class`.`academic_year_id`,

      gc.id                                                            as gc_id,

      users.id,

      gc.grade_midtest,

      gc.grade_finaltest,

      gc.grade_course,

      gc.class_id,

      grade_cpl_class.grade_class_id,

       course.name                                                      as matkul,

      course.semester_course                                           as semester,

      class.academic_year_id                                           as academic_year_id,

      gc.grade_course                                                  as nilaiMatkul,

      gc.class_id,

      grade_cpl_class.grade_class_id,

      course.name                                                      as matkul1,

      class.academic_year_id                                           as tahunajaran,

      course.semester_course                                           as semester1,

      max(map.score)                                            as nilaiMatkul1,

from `grade_cpl_class`

        inner join `grade_class` as `gc` on `gc`.`id` = `grade_cpl_class`.`grade_class_id`

        inner join `cpl_course` as `cc` on `cc`.`id` = `grade_cpl_class`.`cplmk_id`

        inner join `cpl` as `c` on `c`.`id` = `cc`.`cpl_id`

        inner join `users` on `users`.`id` = `gc`.`student_id`

        inner join `class` on `class`.`id` = `gc`.`class_id`

        inner join `course` on `course`.`id` = `class`.`course_id`

       inner join grade_mapping map on map.grade = gc.grade_course

where `gc`.`student_id` = 58

group by matkul

order by `gc`.`created_at` desc

yang lalu oleh  Kawan Berbageek (620 poin)
dipilih yang lalu oleh
Selamat datang di Berbageek! Berbageek adalah tempat berbagi pengetahuan programming, ui/ux design, digital marketing & project management dengan konsep tanya-jawab. Sehingga kita bisa menciptakan solusi pekerjaan lebih cepat dan lebih baik. Berikut adalah rule untuk bertanya:
  1. Jangan duplikasi pertanyaan. Dicari dulu pertanyaan yang serupa.
  2. Buatlah pertanyaan yang generik. Tidak boleh bertanya spesifik menyebutkan nama proyek atau nama perusahaan.