BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: SIWIT ที่ ตุลาคม 14, 2010, 00:11:27 AM
-
คือว่าผมจะดึงยอด ผู้ป่วย HT ครับ โดยแยกเป็น สองยอด ผู้ป่วย HT ที่อายุ 15-34 ปี ครับ
และที่อายุ 35 ปีขึ้นไปครับ โดยใช้คำสั่งนี้ครับ
select count(distinct(o.hn)) from ovstdiag o,vn_stat v
where v.hn=o.hn and v.age_y >="15" and v.age_y<="34" and o.icd10 between "i10" and "i159"
and o.vstdate<"2009-10-01"
ดึงอายุจาก visit ครับผม 15-34
จากนั้น
select count(distinct(o.hn)) from ovstdiag o,vn_stat v
where v.hn=o.hn and v.age_y >="35" and o.icd10 between "i10" and "i159"
and o.vstdate<"2009-10-01"
ดึงอายุจาก visit ครับ ตั้งแต่35 ขึ้นไป
คำถามคือถ้าคนไข้มา หลาย visit ซึ่งไม่ได้เอาอายุล่าสุด มันจะนับคนไข้คนเดียวอยู่ทั้งสองรายงาน ใช่มั้ยครับ
ทำไงถึงจะเอาแต่อายุที่มากที่สุดได้ครับ
ขอบคุณครับ
-
ขอโทษนะครับถ้าตั้งผิดห้องพอดีไม่รู้ว่าจะตั้งห้อง sql ดีมั้ยนะครับ
-
ลองเอาวันเกิดลบกับ วันตัดยอด แ่ต่ก็เขียนไม่เป็นซะอีกคับไม่รู้แบบนี้รึปล่าว
select count(diistinct(o.hn)) from ovstdiag o,vn_stat v,patient p
where v.hn=o.hn and o.hn=p.hn and datediff("2009-10-01",p.birthday)>="35" and o.icd10 between "i10" and "i159"
and o.vstdate<"2009-10-01"
ช่วยหน่อยนะครับ
-
รายงานอายุมากกว่า 35 ปี ให้เพิ่ม o.hn not in o.hn ของรายงานที่ 1 ได้ป่ะครับ..จะได้ไม่ซ้ำใน 2 รายงาน ณ ช่วงเวลาที่เรียกรายงานเดียวกัน คงต้องดูจาก อายุ ณ vstdate เป็นเกณฑ์ และรายงานแบบนี้ คงต้อง parameter ไม่เกิน 1 เดือน เพราะอายุผู้ป่วยจะเปลี่ยนทุกเดือน แน่นอน :D
-
ไม่ได้อะคับ รายงานคนละตัวอะ
-
ได้แล้วครับ คำนวณอายุจากวันที่ตัดยอดครับผมทีนี้คนไข้ยอดก็จะไม่มาปนกันแล้ว
select count(distinct(p.hn)) from ovstdiag o ,vn_stat v ,patient p
where v.hn=o.hn and o.hn=p.hn
and timestampdiff(year,p.birthday,"2009-10-01")>="15"
and timestampdiff(year,p.birthday,"2009-10-01")<="34"
and o.icd10 between "i10" and "i159"
and o.vstdate<"2009-10-01"