BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: panus_t ที่ เมษายน 04, 2014, 14:00:19 PM

หัวข้อ: หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
เริ่มหัวข้อโดย: panus_t ที่ เมษายน 04, 2014, 14:00:19 PM
หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
แบบที่ 1 ได้ 0 ราย
select count(ov.hn) as chn
from vn_stat ov, ovst ovst, patient pt
where  ov.vn=ovst.vn and pt.hn=ov.hn and ov.vstdate between "2013-10-01" and  "2013-10-31"
 and ov.age_y>= 0
 and ov.age_y<= 200
 and ( (ov.pdx = "F70")
 or (ov.dx0 = "F70")
 or (ov.dx1 = "F70")
 or (ov.dx2 = "F70")
 or (ov.dx3 = "F70")
 or (ov.dx4 = "F70")
 or (ov.dx5 = "F70")
 or (ov.pdx = "F71")
 or (ov.dx0 = "F71")
 or (ov.dx1 = "F71")
 or (ov.dx2 = "F71")
 or (ov.dx3 = "F71")
 or (ov.dx4 = "F71")
 or (ov.dx5 = "F71")
 or (ov.pdx = "F72")
 or (ov.dx0 = "F72")
 or (ov.dx1 = "F72")
 or (ov.dx2 = "F72")
 or (ov.dx3 = "F72")
 or (ov.dx4 = "F72")
 or (ov.dx5 = "F72")
 or (ov.pdx = "F73")
 or (ov.dx0 = "F73")
 or (ov.dx1 = "F73")
 or (ov.dx2 = "F73")
 or (ov.dx3 = "F73")
 or (ov.dx4 = "F73")
 or (ov.dx5 = "F73")
 or (ov.pdx = "F74")
 or (ov.dx0 = "F74")
 or (ov.dx1 = "F74")
 or (ov.dx2 = "F74")
 or (ov.dx3 = "F74")
 or (ov.dx4 = "F74")
 or (ov.dx5 = "F74")
 or (ov.pdx = "F75")
 or (ov.dx0 = "F75")
 or (ov.dx1 = "F75")
 or (ov.dx2 = "F75")
 or (ov.dx3 = "F75")
 or (ov.dx4 = "F75")
 or (ov.dx5 = "F75")
 or (ov.pdx = "F76")
 or (ov.dx0 = "F76")
 or (ov.dx1 = "F76")
 or (ov.dx2 = "F76")
 or (ov.dx3 = "F76")
 or (ov.dx4 = "F76")
 or (ov.dx5 = "F76")
 or (ov.pdx = "F77")
 or (ov.dx0 = "F77")
 or (ov.dx1 = "F77")
 or (ov.dx2 = "F77")
 or (ov.dx3 = "F77")
 or (ov.dx4 = "F77")
 or (ov.dx5 = "F77")
 or (ov.pdx = "F78")
 or (ov.dx0 = "F78")
 or (ov.dx1 = "F78")
 or (ov.dx2 = "F78")
 or (ov.dx3 = "F78")
 or (ov.dx4 = "F78")
 or (ov.dx5 = "F78")
 or (ov.pdx = "F79")
 or (ov.dx0 = "F79")
 or (ov.dx1 = "F79")
 or (ov.dx2 = "F79")
 or (ov.dx3 = "F79")
 or (ov.dx4 = "F79")
 or (ov.dx5 = "F79")
)

แบบที่ 2 ได้ 1 ราย
select count(ov.hn) as chn
from vn_stat ov, ovst ovst, patient pt
where  ov.vn=ovst.vn and pt.hn=ov.hn and ov.vstdate between "2013-10-01" and  "2013-10-31"
 and ov.age_y>= 0
 and ov.age_y<= 200
 and ( (ov.pdx >= "F70" and ov.pdx <= "F79")
 or (ov.dx0 >= "F70" and ov.dx0 <= "F79")
 or (ov.dx1 >= "F70" and ov.dx1 <= "F79")
 or (ov.dx2 >= "F70" and ov.dx2 <= "F79")
 or (ov.dx3 >= "F70" and ov.dx3 <= "F79")
 or (ov.dx4 >= "F70" and ov.dx4 <= "F79")
 or (ov.dx5 >= "F70" and ov.dx5 <= "F79") )

ฝากทีมงาน...ช่วยตรวจสอบให้หน่อยนะครับ
หัวข้อ: Re: หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
เริ่มหัวข้อโดย: BBT Hospital ที่ เมษายน 06, 2014, 09:13:09 AM
ผมว่าไม่แปลกนี่ครับ เนื่องจากรหัส ICD10 ที่ระบุ มันมีตัวย่อยด้วย ทำให้ค่าที่หาได้มากกว่าแบบไม่มีตัวย่อยครับ
เช่น F70 หากมีตัวย่อย เช่น  F709 ก็ทำให้การหาจำนวนแตกต่างกันได้อยู่แล้วครับ
หัวข้อ: Re: หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
เริ่มหัวข้อโดย: udomchok ที่ เมษายน 08, 2014, 00:58:50 AM
ใช่ครับ ไม่แปลกเลย
Panus_t ต้องทำความเข้าใจกับ sql ให้ดีอีกนิดครับ
หัวข้อ: Re: หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
เริ่มหัวข้อโดย: panus_t ที่ เมษายน 08, 2014, 11:21:48 AM
รับทราบครับ
เป็นอย่างนี้นี่เอง    ;D
หัวข้อ: Re: หาจำนวน pt icd10 F70-F79 2 แบบไม่เท่ากัน
เริ่มหัวข้อโดย: บิ๊กเบิร์ด ที่ เมษายน 21, 2014, 20:38:07 PM
เงื่อนไข หลัง WHERE
แบบแรก
ov.pdx = "F70"
pdx ต้อง เท่ากับ F70 เท่านั้น จึงจะทำให้เงื่อนไขถูกต้องครับ

แบบสอง
ov.pdx >= "F70" and ov.pdx <= "F79"
pdx ต้อง อยู่ระหว่าง F70 หมายความว่า F70,F71,F72,F73,F74,F75,F76,F77,F78,F79 ครับ