ช่วยด้วย!! ออกรายงาน หาเวลาที่ใช้ใช้ไปในรายการนั้นๆครับ
ลองเปลียน statement สำหรับคิวรี่ใหม่ไหมครับ
Code (SQL)
SELECT
staff_id,
SEC_TO_TIME( SUM( UNIX_TIMESTAMP(dateend) - UNIX_TIMESTAMP(datestart)) ) as runtime
FROM tablename
GROUP BY staff_id
ปล.
ลองปรับใช้ดูนะครับ คือผม อ่าน structure table แล้ว งง
dateend datestart เป็นเวลาการทำงานในแต่ละวันนะครับ
ประวัติการแก้ไข 2014-10-27 09:27:52 2014-10-27 09:31:13
Date :
2014-10-27 09:27:38
By :
Chaidhanan
คือผมหาเวลาการทํางานได้แล้วครับ โดยผ่าน fn duration ที่ติดคือจะเอา $sumdate = duration($row_Sd[datetime_request],$row_Sd[datetime_commit]); // $sumdate มา + หาเวลาทั้งหมดที่ใช้ไปในงานวันนั้นๆ ตามเวลาที่ผู้ใช้เลือกครับ $sumdate ไม่รู้จะเอา $sumdate มารวมยังไง
Date :
2014-10-27 09:41:27
By :
dexnall
ที่พี่ให้มา SEC_TO_TIME( SUM( UNIX_TIMESTAMP(dateend) - UNIX_TIMESTAMP(datestart)) ) as runtime ผลที่ได้เหมือน fn duration ผมเลยออกมาเวาลาที่ใช้ในแต่ละงาน ไม่ยอม sum งานที่ใช้ในแต่ละงาน ให้อะครับมันออกแต่ละงานไม่ยอมรวม ต้อง เขียนคําสั่งไรเพิ่มครับพี่ มีความหวังแล้ววว
Date :
2014-10-27 09:57:37
By :
dexnall
Code (SQL)
select
FLOOR( HOUR( wrk) / 24) as d,
HOUR( wrk ) % 24 as h,
MINUTE( wrk ) as m
from (
select SEC_TO_TIME( SUM( UNIX_TIMESTAMP(d2) - UNIX_TIMESTAMP (d1)) ) as wrk
from (
select '2014-10-10 08:00:00' as d1, '2014-10-10 18:00:00' as d2
union all
select '2014-10-11 08:00:00', '2014-10-11 18:00:00'
union all
select '2014-10-12 08:00:00' as d1, '2014-10-12 18:00:00'
) as t1
) as t2
ลองเอาไปรันบน phpmyadmin เพื่อจะเกิด idea นะครับ
ปล.
โค๊ดที่คุณเขียนมันยุ่งยากสำหรับผม เลยเขียนโค๊ดที่ผมคิดว่าง่ายสำหรับผม เป็นตัวอย่างให้ดูนะครับ
ถ้ามันยุ่งยากสำหรับคุณก็ไม่ต้องสนใจมันก็ได้ครับ
โค๊ดที่คุณเขียนมัน ไม่รวมวัน แต่โค๊ดที่ผมเขียน มันรวมเวลาทำงานทั้งหมดเอาไว้ ก็แล้วแต่จะใช้นะครับ
Date :
2014-10-27 10:25:40
By :
Chaidhanan
ถ้าในแต่ละวัน มันมีหลายงาน คุณก็ต้อง รวมงานในแต่ละวันก่อน
เอาตารางที่เกี่ยวข้องมาดูก็จะดีนะครับ แล้วอธิบายแต่ละฟีลด์มันคืออะไร ถ้าชื่อมันไม่สื่อความหมาย
Date :
2014-10-27 10:35:10
By :
Chaidhanan
พี่ไม่ต้อง group by หรอครับ
Date :
2014-10-27 10:35:36
By :
dexnall
ตัวอย่างที่ผมทำ มันไม่มีการอ้างอิง ไอดี อะไรครับ เลยไม่ต้องมี group by
เป็นตัวอย่างการ sum เวลาทำงาน เท่านั้นครับ
แต่ข้อมูลจริงมันแยกแต่ละคนก็ต้อง group by
Date :
2014-10-27 10:43:46
By :
Chaidhanan
ขอบคุณครับพี่ได้ละ เป็นแบบนี้ 206:28:22 พี่พอมีฟังก์ชั่น แปลงใส่พวกคําว่า ชั่วโมง นาที วินาที ไหมครับ เช่น 206 ชั่วโมง 28 นาที 22 วินาที
Date :
2014-10-27 10:58:46
By :
dexnall
ดูตัวอย่าง โค๊ด คห 4 เลยครับ
Date :
2014-10-27 11:01:44
By :
Chaidhanan
Load balance : Server 05