BMS-HOSxP Community

HOSxP => การเขียน SQL Script => ข้อความที่เริ่มโดย: NUI ที่ มีนาคม 26, 2019, 18:03:23 PM

หัวข้อ: รบกวนอาจารย์ทุกท่านหน่อยครับ
เริ่มหัวข้อโดย: NUI ที่ มีนาคม 26, 2019, 18:03:23 PM
รบกวนอาจารย์ทุกท่านหน่อยครับ
เนื่องจากผมพึ่งเข้างานใหม่ ยังไม่ค่อยคุ้นเคยกับแต่ละตาราง จะ query อะไรแต่ละทีก็จะยากหน่อย กลัวอย่างนึงคือกลัวผิดตารางครับ
วันนี้เลยจะขอความฃ่วยเหลือหน่อยครับ
1.ผมต้องการข้อมูลผู้ป่วยที่ ReVisit ใน 72 ชม ด้วยโรคเดิม
2. ตารางหลักคือ icd101 ครับ เพราะจะนับว่าโรคนั้นมีคนกลับมารักษารอบที่ 2 เป็นต้นไปกี่ครั้งแล้วครับ

ผมอยากทราบว่าต้อง query ตารางใหนกับตารางใหนบ้างครับ ตอนนี้จับทางได้ว่า patient+icd101 รบกวนบอกตารางที่จำเป็นให้ผมหน่อยครับ

"ขอบคุณครับ"
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านหน่อยครับ
เริ่มหัวข้อโดย: manoi ที่ มีนาคม 26, 2019, 18:51:09 PM
ถ้าโรคเดิมคือ principal diagnosis ก็สามารถใช้จาก vn_stat ได้ครับ

โค๊ด: [Select]
select v.*,p.pname,p.fname,p.lname
from vn_stat v , ovst o ,patient p
where v.vstdate between 'yyyy-mm-dd' and 'yyyy-mm-dd'
and v.old_diagnosis = 'Y' and v.lastvisit_hour <= 72
and v.vn = o.vn and o.hn = p.hn

ถ้าจะเอา icd101 เป็นตารางหลัก
โค๊ด: [Select]
select i.code,i.name,count(v.vn) as visit_count
from icd101 i
left outer join vn_stat v  on v.old_diagnosis = 'Y' and v.lastvisit_hour <= 72 and v.pdx = i.code
and  v.vstdate between 'yyyy-mm-dd' and 'yyyy-mm-dd'
group by i.code,i.name

เขียนแบบ equi join
โค๊ด: [Select]
select i.code,i.name,count(v.vn) as visit_count
from icd101 i, vn_stat v
where v.old_diagnosis = 'Y' and v.lastvisit_hour <= 72
and v.pdx = i.code and  v.vstdate between 'yyyy-mm-dd' and 'yyyy-mm-dd'
group by i.code,i.name
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านหน่อยครับ
เริ่มหัวข้อโดย: NUI ที่ มีนาคม 27, 2019, 09:20:23 AM
ขอบพระคุณมากๆครับอาจารย์