สอบถามเรื่องการบันทึก การลงเวลาเข้าออกงานของพนักงานครับ ให่แสดงวันที่พนักงานไม่ได้มาด้วย
แบบง่ายที่สุด สร้างตัว Update ทำหน้าที่ Insert ข้อมูลวันที่พนักงานไม่ได้มา แล้วใส่เวลาเข้าออกงานเป็น 00:00:00
ทีนี้ เราก็จะมีจำนวนข้อมูลการมาทำงานของพนักงานครบทั้งเดือน แล้วเช็คที่เวลาเข้าออกงานเป็น 00:00:00 ก็แสดงข้อความในตารางว่าขาดงาน :D
ตัว Update จะรันตอนไหน?
อาจจะเป็นคำถาม มีหลายวิธี Crontab / รัน Manual / รันผ่าน Browser
แนะนำแบบง่ายที่สุดแอบบรันผ่าน Browser แล้วกำหนดเงื่อนไขช่วงเวลาที่เราต้องการเพื่อลดการทำงานของ Server เพราะตัว Update ต้องไป Query ตารางพนักงานทั้งหมดเพื่อสร้าง Record ในตารางเข้าออกงาน แต่เป็นวิธีที่ไม่ค่อยดี เพราะถ้าไม่มีใครมาเปิดเว็บในเวลาที่เรากำหนด ตารางก็จะไม่อัพเดท ลองดูนะครับ
เพิ่มเติมจากประสบการณ์
ถ้าคุณไม่มี Cron Jobs และไม่อยากใช้วิธีแอบรันผ่าน Browser แนะนำให้ใช้ Window Scheduler เพื่อสั่งให้เข้าไปยัง URL ที่เป็นตัว Update หลังจากที่ทุกคนกลับบ้านหมดแล้ว
ถ้าคุณมี Cron Jobs ใช้วิธีนี้แทน ...
ประวัติการแก้ไข 2016-04-27 12:27:10
Date :
2016-04-27 12:21:33
By :
ALTELMA
ตัวอย่างการคิวรี่เฉพาะ เดือนปัจจุบัน
Code (SQL)
select ud.*, tw.date_in, tw.date_out from (
select left(now(),7) ym, em.id, tmp.d1 from (
select day(date_in) as d1
from tb_time_work
where left(date_in,7)=left(now(),7)
group by day(date_in) )
) as tmp, employee as em
) as ud left join tb_time_work tw
on (left(tw.date_in)=ym or left(tw.date_out)=ym)
and tw.em_id=ud.id and day(tw.date_in)=ud.d1
Date :
2016-04-28 04:48:15
By :
Chaidhanan
Load balance : Server 02