ใช้่ผลต่างเวลาเป็นชั่วโมง ระหว่าง vn ใกล้กันของ hn นั้น ๆ ที่ lastvisit_hour <= 24 เพราะระบบคล้าย ๆ จะแยกจาก vstdate+vsttime เพื่อให้ได้จำนวนชั่วโมงครั้งสุดท้ายที่ห่างจากวันก่อนหน้าครับ..ได้ไหมครับ...
ขอบคุณมากครับ อ.เกื้อ
แก้ไขมาเป็นแบบนี้ กำลังทดลองใช้ครับ
select count(op.hn) as cc,v.pdx,v2.pdx,
(((to_days(op.vstdate)*24)- ((to_days(op2.vstdate)*24)) + (( time_to_sec(op.vsttime))/3600)) - (( time_to_sec(op2.vsttime))/3600))
as revist_time2
,op.vn as vn_1,op.vstdate as d1,i1.name as icdname_1,d1.name as doctor_name1,
concat(p.pname,"",p.fname," ",p.lname) as ptname ,
v.hn,
op2.vn as vn_2,op2.vstdate as d2,op.vsttime as time_1,op2.vsttime as time_2, i2.name as icdname_2, d2.name as doctor_name2
,c1.cc,c1.hpi,c2.cc,c2.hpi
from opitemrece op
left outer join vn_stat v on v.vn=op.vn
left outer join ovst o on o.hn=v.hn and o.vn < v.vn and o.vn is not null and o.vstdate>DATE_SUB('2011-06-20', INTERVAL ((72/24)+1) DAY)
left outer join vn_stat v2 on v2.vn=o.vn
left outer join opitemrece op2 on o.vn=op2.vn and op2.vn is not null
left outer join icd101 i1 on i1.code=v.pdx
left outer join icd101 i2 on i2.code=v2.pdx
left outer join doctor d1 on d1.code=v.dx_doctor
left outer join doctor d2 on d2.code=v2.dx_doctor
left outer join patient p on p.hn=o.hn
left outer join opdscreen c1 on (v.vn=c1.vn)
left outer join opdscreen c2 on (v2.vn=c2.vn)
where op.vstdate between '2011-06-20' and '2011-06-20' and
(((to_days(op.vstdate)*24)- ((to_days(op2.vstdate)*24)) + (( time_to_sec(op.vsttime))/3600)) - (( time_to_sec(op2.vsttime))/3600)) between 0 and 72
and v.pdx=v2.pdx
group by op.hn
order by op.vstdate