Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
logika SQL select table tanggal value tertinggi sebelum tanggal yang ditentukan
aku agak susah menjelaskannya,, jadi langsung ke persoalannya aja yaa,,,
aku punya 2 table seperti ini
image_2022-06-27_215826430.png
image_2022-06-27_215838497.png
nah,, aku mau bikin kondisi, dimana kalo aku input tanggal, maka yang terpanggil adalah siswa dengan tanggal yang di lewati terdekat (nah kan,, susah dijelasinnya XD )
misal aku input tanggal 14 mei,, maka yang terpanggil kayak gini
image_2022-06-27_220309926.png
mohon bantuannya yaa,,,
1 Jawaban:
Jawaban Terpilih
<div>1. Assumi di table tb_jadwal tanggal-nya itu bertype DATETIME, kalau sudah berformat seperti pada contoh; kita perlu merubah jadi DATETIME agar bisa di-filter.<br>2. Table tb_jadwal-nya di filter tb_jadwal.tanggal dengan lebih kecil dari '2022-05-14' lalu di GROUP BY tb_jadwal.id_siswa dengan SELECT tb_jadwal.id_siswa dan MAX(tb_jadwal.tanggal) AS tanggal .<br>3. Dari hasil query step 2, <br> a. di JOIN tb_siswa.id_siswa = query2.id_siswa<br> b. di JOIN tb_jadwal.id_siswa = query2.id_siswa AND tb_jadwal.tanggal = query2.tanggal <br> c. SELECT-nya tb_siswa.nama, tb_jadwal.keterangan dan DATE_FORMAT(query2.tanggal,'%d %M') AS tanggal<br> d. Kalau hasil step3C itu dalam english -- tanggal format-nya, biasanya variable @@lc_time_names (cek pakai SELECT @@lc_time_names;) adalah 'en_US'.<br> e. untuk merubah jadi indonesia sebelum query bisa diganti pakai SET lc_time_names = 'id_ID';</div>