Tolong pilih kategori sesuai, jenis posting (pertanyaan atau bukan) dan sertakan tag/topik yang sesuai misal komputer, php, mysql, dll.
Promosi atau posting tidak pada tempatnya akan kami hapus.
Mencantumkan kode program di posting Anda, tolong ikuti aturan yang sesuai, baca http://diskusiweb.com/discussion/39204/aturan-cara-menyisipkan-kode-program-di-diskusiweb

Baca cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

(SOLVED) Tanya query absensi

Sore master,
Saya ada tabel absensi

id | nik | tanggal | jam
1 | 01 | 2017-01-01 | 06:25
2 | 01 | 2017-01-01 | 06:27
3 | 01 | 2017-01-01 | 16:30
4 | 02 | 2017-01-01 | 22:00
5 | 02 | 2017-01-02 | 07:00

query saya
select *, min(jam) as jam_in, max(jam) as jam_out from absensi
group by nik,tanggal

Hasilnya
id | nik | tanggal | jam_in | jam_out
1 | 01 | 2017-01-01 | 06:25 | 16:30
2 | 02 | 2017-01-01 | 22:00 | 22:00
3 | 02 | 2017-01-02 | 07:00 | 07:00


Hasil yang di inginkan
id | nik | tanggal | jam_in | jam_out
1 | 01 | 2017-01-01 | 06:25 | 16:30
2 | 02 | 2017-01-01 | 22:00 | 07:00

Jadi ada multi shift, ada shift yang jam kerjanya dalam hari yang sama & ada yg beda hari. Mohon bantuannya master.

Tanggapan

  • ada yg bisa bantu ga ? :(
  • di coba bro
    SELECT nik, tgl, MIN(jam) AS jam_in, (SELECT MAX(jam) AS jam_out FROM docs d
    WHERE
    d.nik=docs.nik
    GROUP BY nik) AS j
    FROM docs GROUP BY nik
  • yang perlu dipahami adalah, apabila tidak ada informasi shift di table,
    maka mesti ada patokan di luar jam kerja nya,
    untuk kasus diatas saya liat ada jeda sekitar 6,5 jam antara shift 1 dan shift 2.
    Di sini saya ambil contoh patokan nya adalah jam 19:00
    Query nya jadi seperti ini:
    SELECT 
    id, nik, tanggal,
    CASE
    WHEN jam < '19:00' THEN MIN(jam)
    WHEN jam > '19:00' THEN MAX(jam)
    ELSE NULL
    END AS "Jam Masuk",
    CASE
    WHEN jam < '19:00' THEN MAX(jam)
    WHEN jam > '19:00' THEN MIN(jam)
    ELSE NULL
    END AS "Jam Keluar"
    FROM absensi
    GROUP BY nik
  • uda nemu sendiri bro querynya tp makasih tanggapannya.
  • bgmn solusi nya mas? :)
  • harus ada bantuan 1 tabel lagi mas, tabel schedule kerja. Di situ ada jam masuk, awal_jam_masuk,akhir_jam_masuk. Jadi untuk in nya di cari atara awal_jam_masuk - akhir_jam_masuk. Begitu juga untuk out nya mas
Sign In or Register to comment.