screen_doctor,ovst,vn_stat,opdscreen,incoth น่าจะพอช่วยได้นะคับ ผมทำอยู่ก็ใช้ประมาณนี้ รายงานโดยรวมตรงดี และเน้นย้ำไม่ให้ส่งต่อมั่วไปมั่วมา เรียกเอง แต่ว่าจะยังไงของผมก็ตรงดี ใช้มานานแล้ว
ลองดู code ผมแล้วไปดัดแปลงเอาก็ได้ เพราะจุดบริการอาจจะกำหนดต่างกัน ผม copy มาจากรายงานเลยนะ ลองดูก่อน ตรงใจไหม ถือว่าแบ่งปัน(รายงานผู้ป่วยนอกที่มารับบริการ(ในเวลา) )
select distinct(v.vn),pq.*,o.cur_dep,sc.*,pq.*,v.sex,v.hn,v.age_y,v.age_m,v.age_d,v.pdx from vn_stat v
left outer join ovst o on v.vn=o.vn
left outer join pq_doctor pq on v.vn=pq.vn
left outer join screen_doctor sc on v.vn=sc.vn
where pq.doctor="เอารหัสแพทย์มาใส่ถ้าต้องการหรือpipeline มา" and sc.depcode="035"
and v.vstdate between "yyyy-mm-dd" and "yyy-mm-dd"
group by v.vn order by v.vstdate,pq.doctor_time,v.hn
แนะนำว่าส่วนรายละเอียดอื่นก็หาแล้วก็ join ตารางเอามาก็ได้แล้วล่ะคับ