BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Vegeta ที่ สิงหาคม 19, 2009, 09:54:12 AM
-
ขอความช่วยเหลือคำสั่งเทียบเวลา ครับ
อยากนับรายการห้อง Lab แยกรายการ ที่มีเวลาน้อยกว่า 45 นาทีครับ
เช่น CBC เริ่มรับ Lab จนได้รายงานผล น้อยกว่า 45 นาที มีกี่คน ครับผม
ลองมา 1 วัน ได้แต่เวลาแต่นับไม่ถูกครับ
ขอบคุณครับ
-
ใช้แบบนี้ก็ได้นะครับ
mysql> SELECT TIMEDIFF('2000:01:01 00:00:00',
-> '2000:01:01 00:00:00.000001');
-> '-00:00:00.000001'
mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
-> '1997-12-30 01:01:01.000002');
-> '46:58:57.999999'
พอได้ค่าก็ as เก็บไว้ตัวแปลหนึ่ง แล้วนำไปเปลี่ยนเทียบใน where ว่าเราต้องการให้ > หรือ <
เช่น SELECT TIMEDIFF('1997-12-31 23:59:59.000001','1997-12-30 01:01:01.000002') as test1 ;
ผลที่ได้คือ test1 จะมีค่าเท่ากับ '46:58:57.999999'
จากนั้นก็เอา test1 มาใส่ที่ where ได้ครับ test1 > หรือ test1 < กว่าก็ได้ครับ
ผมบอกแค่แนวคิดละกันนะครับ อิอิอิ
-
แบบนี้น่าจะใช้ได้ นะครับ
ลองปรับตามความต้องการดู ครับ
อ้าว! ถามเอง ตอบเอง
select l.form_name ,i.lab_items_name,count(o.lab_items_code) as count_order
from lab_form l
left outer join lab_items i on i.lab_items_code = l.lab_items_code
left outer join lab_order o on o.lab_items_code = i.lab_items_code
and o.lab_order_number in
( select lab_order_number from lab_head where (order_date
between "2009-07-01" and "2009-07-31")
and (sec_to_time(time_to_sec(report_time)-time_to_sec(order_time)) > '00:45:00')
and (department = 'OPD' )
)
group by l.form_name ,i.lab_items_name
order by l.form_name,i.lab_items_name
-
แบบนี้น่าจะใช้ได้ นะครับ
ลองปรับตามความต้องการดู ครับ
อ้าว! ถามเอง ตอบเอง
select l.form_name ,i.lab_items_name,count(o.lab_items_code) as count_order
from lab_form l
left outer join lab_items i on i.lab_items_code = l.lab_items_code
left outer join lab_order o on o.lab_items_code = i.lab_items_code
and o.lab_order_number in
( select lab_order_number from lab_head where (order_date
between "2009-07-01" and "2009-07-31")
and (sec_to_time(time_to_sec(report_time)-time_to_sec(receive_time)) > '00:45:00')
and (department = 'OPD' )
)
group by l.form_name ,i.lab_items_name
order by l.form_name,i.lab_items_name
ขออนุญาติแก้ไขให้ถูกต้องนะครับเพราะเวลาที่ต้องเริ่มนับคือเมื่อห้อง lab ทำการรับ specimen เพื่อตรวจครับถ้าเอาเวลาที่สั่งบางทีคนไข้ไปค้างที่ห้องอื่นยังมาไม่ถึงห้อง lab ก็จะเกิน 45 นาทีครับ ;D
-
แบบนี้น่าจะใช้ได้ นะครับ
ลองปรับตามความต้องการดู ครับ
อ้าว! ถามเอง ตอบเอง
select l.form_name ,i.lab_items_name,count(o.lab_items_code) as count_order
from lab_form l
left outer join lab_items i on i.lab_items_code = l.lab_items_code
left outer join lab_order o on o.lab_items_code = i.lab_items_code
and o.lab_order_number in
( select lab_order_number from lab_head where (order_date
between "2009-07-01" and "2009-07-31")
and (sec_to_time(time_to_sec(report_time)-time_to_sec(order_time)) > '00:45:00')
and (department = 'OPD' )
)
group by l.form_name ,i.lab_items_name
order by l.form_name,i.lab_items_name
แหล่ม
แบบนี้น่าจะใช้ได้ นะครับ
ลองปรับตามความต้องการดู ครับ
อ้าว! ถามเอง ตอบเอง
select l.form_name ,i.lab_items_name,count(o.lab_items_code) as count_order
from lab_form l
left outer join lab_items i on i.lab_items_code = l.lab_items_code
left outer join lab_order o on o.lab_items_code = i.lab_items_code
and o.lab_order_number in
( select lab_order_number from lab_head where (order_date
between "2009-07-01" and "2009-07-31")
and (sec_to_time(time_to_sec(report_time)-time_to_sec(receive_time)) > '00:45:00')
and (department = 'OPD' )
)
group by l.form_name ,i.lab_items_name
order by l.form_name,i.lab_items_name
ขออนุญาติแก้ไขให้ถูกต้องนะครับเพราะเวลาที่ต้องเริ่มนับคือเมื่อห้อง lab ทำการรับ specimen เพื่อตรวจครับถ้าเอาเวลาที่สั่งบางทีคนไข้ไปค้างที่ห้องอื่นยังมาไม่ถึงห้อง lab ก็จะเกิน 45 นาทีครับ ;D
สู้ดยอด!! เอาไปคนละ thank