ผมได้รับงานแรกให้หาข้อมูล คนไข้เบาหวาน ที่ตรวจ HBA1C ที่มีสิทธิ UC ของปีนี้ทั้งหมดครับ 1 ต.ค.58 - 30 ก.ย. 59
สิทธิ UC คือสิทธิประกันสุขภาพถ้วนหน้า หรือ บัตรทองใช่ไหมครับ ผมเอาข้อมูลมาถูกตารางไหมครับ
แล้วเขียน code แบบด้านล่าง ถูกไหมครับ
ขอรบกวนหน่อยครับ ผมพึ่งรู้จัก Hosxp ไม่กี่วันครับ แล้วก็ sql ก็ลืมหมดแล้วครับ
===================================================
แบบที่ 1
select ovst.hn ,concat(patient.pname,patient.fname,' ',patient.lname)as 'ª×èÍ-¹ÒÁÊ¡ØÅ',
pttype.pcode,lab_items.lab_items_code,lab_items.lab_items_name
from ovst
inner join clinicmember on clinicmember.hn = ovst.hn
inner join patient on ovst.hn = patient.hn
inner join lab_head on ovst.vn = lab_head.vn
inner join lab_order ON lab_order.lab_order_number = lab_head.lab_order_number
inner join lab_items ON lab_items.lab_items_code = lab_order.lab_items_code
inner join pttype on pttype.pttype = ovst.pttype
where lab_items.lab_items_code = '294' and ovst.pttype in(86,87,88,93,95,96,97,98,99) and ovst.vstdate between '2015-10-01'and '2016-09-30'
group by ovst.hn
ORDER BY ovst.hn
ผล 413 รายครับ
=======================================================================================================
แบบที่ 2
select ovst.hn ,concat(patient.pname,patient.fname,' ',patient.lname)as 'ชื่อ-นามสกุล',
vn_stat.pcode,lab_items.lab_items_code,lab_items.lab_items_name
from ovst
inner join clinicmember on clinicmember.hn = ovst.hn
inner join vn_stat on ovst.vn = vn_stat.vn
inner join patient on vn_stat.hn = patient.hn
inner join lab_head on vn_stat.vn = lab_head.vn
inner join lab_order on lab_order.lab_order_number = lab_head.lab_order_number
inner join lab_items on lab_items.lab_items_code = lab_order.lab_items_code
where lab_items.lab_items_code = '294' and ovst.pttype in(86,87,88,93,95,96,97,98,99) and (ovst.vstdate between '2015-10-01'and '2016-09-30' )
group by ovst.hn
ORDER BY ovst.hn
ผล 413 รายครับ
===============================================================================================
แบบที่ 3
select ovst.hn ,concat(patient.pname,patient.fname,' ',patient.lname)as 'ª×èÍ-¹ÒÁÊ¡ØÅ',
vn_stat.pcode,lab_items.lab_items_code,lab_items.lab_items_name
from ovst
inner join clinicmember on clinicmember.hn = ovst.hn
inner join vn_stat on ovst.vn = vn_stat.vn
inner join patient on vn_stat.hn = patient.hn
inner join lab_head on vn_stat.vn = lab_head.vn
inner join lab_order on lab_order.lab_order_number = lab_head.lab_order_number
inner join lab_items on lab_items.lab_items_code = lab_order.lab_items_code
where lab_items.lab_items_code = '294' and vn_stat.pcode ='UC' and (ovst.vstdate between '2015-10-01'and '2016-09-30' )
group by ovst.hn
ORDER BY ovst.hn
ผล 413 รายครับ
=====================================================================================
แบบที่ 4
select ovst.hn ,concat(patient.pname,patient.fname,' ',patient.lname)as '
?-?
',
vn_stat.pcode,lab_items.lab_items_code,lab_items.lab_items_name
from ovst
left outer join clinicmember on clinicmember.hn = ovst.hn
left outer join vn_stat on ovst.vn = vn_stat.vn
left outer join patient on vn_stat.hn = patient.hn
left outer join lab_head on vn_stat.vn = lab_head.vn
left outer join lab_order on lab_order.lab_order_number = lab_head.lab_order_number
left outer join lab_items on lab_items.lab_items_code = lab_order.lab_items_code
where lab_items.lab_items_code = '294' and vn_stat.pcode ='UC' and (ovst.vstdate between '2015-10-01'and '2016-09-30' )
group by ovst.hn
ORDER BY ovst.hn
ผล 601 รายครับ
==============================================
ovst.pttype in(86,87,88,93,95,96,97,98,99) เป็นรหัสประเภทสิทธิการรักษาครับ
ไม่ทราบว่าอันไหนถูก ครับ