【发布时间】:2020-07-03 03:15:43
【问题描述】:
我尝试为学生制作出勤数据报告。 有两个列表,出席人数和缺席人数。为了显示出勤列,我使用查询来计算数据包含“出席”时的出席人数。同时,为了计算缺席的数量,我使用了另一个查询,条件是数据包含“Alpa”。
简而言之,在我看来我有两个查询结果
$query1 = ... ;
$query2 = ... ;
我可以在 DataTables 中同时显示两者吗?如果可能的话, 如何在数据表中显示它们?还是有另一种方法可以只生成一个查询结果?
这是我的代码
$query1 = DB::table('presensi AS ps')
->join('jadwal AS j', 'ps.id_jadwal', '=', 'j.id')
->join('mahasiswa AS m', 'ps.id_mahasiswa_taklim', '=', 'm.nim')
->join('mahasiswa_taklim AS mt', 'ps.id_mahasiswa_taklim', '=', 'mt.nim')
->join('kelompok AS k', 'mt.kd_kelompok', '=', 'k.kd_kelompok')
->selectRaw('count(ps.status_kehadiran) as jumlah_kehadiran, ps.id_mahasiswa_taklim, m.nama_mahasiswa')
->selectRaw('max(j.pertemuan) as jumlah_pertemuan')
->where('k.id_muallim', $user->no_identitas)
->where('ps.status_kehadiran', 'Hadir')
->groupBy('ps.id_mahasiswa_taklim')
->groupBy('m.nama_mahasiswa')
->get();
return DataTables::of(query1)->make(true);
一点点谷歌翻译可以帮助说英语的人弄清楚查询中发生了什么。
$query1 = DB::table('presence AS ps')
->join('schedule', 'ps.id_schedule', '=', 'schedule.id')
->join('college_student AS cs', 'ps.id_college_student_taklim', '=', 'cs.nim')
->join('college_student_taklim AS cst', 'ps.id_college_student_taklim', '=', 'cst.nim')
->join('group', 'cst.kd_group', '=', 'group.kd_group')
->selectRaw('count(ps.status_presence) as total_presence, ps.id_college_student_taklim, cs.name_college_student')
->selectRaw('max(schedule.meeting) as total_meeting')
->where('group.id_navigator', $user->no_identity)
->where('ps.status_presence', 'Present')
->groupBy('ps.id_college_student_taklim')
->groupBy('cs.name_college_student')
->get();
【问题讨论】:
标签: php sql database laravel datatables