BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: Bluebird ที่ พฤษภาคม 25, 2011, 09:00:01 AM

หัวข้อ: ขอความช่วยเหลือ คำสั่ง กรอง DTX และ FBS
เริ่มหัวข้อโดย: Bluebird ที่ พฤษภาคม 25, 2011, 09:00:01 AM
เดิมพยาบาลต้องการรายชื่อผู้ป่วยคลีนิคเบาหวาน ตรวจ DTX และ FBS ที่มีผล ระหว่าง 70-200
แต่ผู้ป่วยช่วง 3 เดือน (ก.พ.-เม.ย.) ที่ตรวจ ผลตรวจครั้งใดครั้งหนึ่งที่มีผล มากกว่า 200 จะไม่เอา

รายชื่อผู้ป่วยคลีนิคเบาหวาน ตรวจ DTX และ FBS ที่มีผล ระหว่าง 70-200
select v.vstdate,p.hn,concat(p.pname,p.fname," ",p.lname) as ptname,l2.lab_order_result from vn_stat v
left outer join patient p on  p.hn=v.hn
left outer join clinicmember c on c.hn=v.hn
left outer join lab_head l1 on l1.vn=v.vn
left outer join lab_order l2 on l2.lab_order_number=l1.lab_order_number
where v.vstdate between "2011-02-01" and "2011-04-30"
and c.clinic="001" and l2.lab_items_code in("76","219")
and l2.lab_order_result between 70 and 200
หัวข้อ: Re: ขอความช่วยเหลือ คำสั่ง กรอง DTX และ FBS
เริ่มหัวข้อโดย: Bluebird ที่ พฤษภาคม 26, 2011, 11:48:42 AM

รายชื่อผู้ป่วยคลีนิคเบาหวาน ตรวจ DTX และ FBS ที่มีผล ระหว่าง 70-200
select v.vstdate,p.hn,concat(p.pname,p.fname," ",p.lname) as ptname,l2.lab_order_result from vn_stat v
left outer join patient p on  p.hn=v.hn
left outer join clinicmember c on c.hn=v.hn
left outer join lab_head l1 on l1.vn=v.vn
left outer join lab_order l2 on l2.lab_order_number=l1.lab_order_number
where v.vstdate between "2011-02-01" and "2011-04-30"
and c.clinic="001" and l2.lab_items_code in("76","219")
and l2.lab_order_result between 70 and 200
ช่วยเพิ่มเติม ที่ว่า หากผล LAb ในช่วง 3 เดือน ที่มีค่า 200 ขึ้นไป ไม่ต้องเอา ต่อจากคำสั่งแรก
หัวข้อ: Re: ขอความช่วยเหลือ คำสั่ง กรอง DTX และ FBS
เริ่มหัวข้อโดย: pop_hosxp ที่ พฤษภาคม 26, 2011, 12:19:09 PM
แบบนี้ได้ไหมครับ

select v.vstdate,p.hn,concat(p.pname,p.fname," ",p.lname) as ptname,l2.lab_order_result from vn_stat v
left outer join patient p on  p.hn=v.hn
left outer join clinicmember c on c.hn=v.hn
left outer join lab_head l1 on l1.vn=v.vn
left outer join lab_order l2 on l2.lab_order_number=l1.lab_order_number
where v.vstdate between "2011-02-01" and "2011-04-30"
and c.clinic="001" and l2.lab_items_code in("76","219")
and l2.lab_order_result between 70 and 200
and p.hn not in (select hn from lab_order where lab_order_result>200 where lab_items_code in("76","219") and laborder_date between  "2011-02-01" and "2011-04-30" )
หัวข้อ: Re: ขอความช่วยเหลือ คำสั่ง กรอง DTX และ FBS
เริ่มหัวข้อโดย: Bluebird ที่ พฤษภาคม 26, 2011, 12:20:10 PM
select v.vstdate,p.hn,concat(p.pname,p.fname," ",p.lname) as ptname,l2.lab_order_result from vn_stat v
left outer join patient p on  p.hn=v.hn
left outer join clinicmember c on c.hn=v.hn
left outer join lab_head l1 on l1.vn=v.vn
left outer join lab_order l2 on l2.lab_order_number=l1.lab_order_number
where v.vstdate between "2011-02-01" and "2011-04-30"
and c.clinic="001" and l2.lab_items_code in("76","219")
and l2.lab_order_result between 70 and 200
and p.hn not in (select l4.hn from lab_order l3
left outer join lab_head l4 on l4.lab_order_number=l3.lab_order_number
where l3.lab_items_code in("76","219")
and l3.lab_order_result>200 and l4.order_date between  "2011-02-01" and "2011-04-30" )
group by hn

ขอบคุณท่าน pop_hosxp ให้แนวทางมา