BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: rimkong ที่ มิถุนายน 16, 2008, 13:33:26 PM

หัวข้อ: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: rimkong ที่ มิถุนายน 16, 2008, 13:33:26 PM
รบกวนสอบถามเรื่อง คำสั่ง SQL กับอาจารย์ทุกท่านด้วยครับ
คือผมต้องการทำรายงาน Pt ที่เป็นความดันโดยแยกเป็นแต่ละตำบล
ผมลองทำแล้วปรากฎว่า ได้ชื่อ และ HN ซ้ำมา ไม่แน่ใจว่าต้องใช้คำสั่งใด
ในการตัดชื่อ และ HN ซ้ำออก หรือท่านใดมีรายงานแบบนี้ ก็รบกวนขอด้วยนะครับ
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: pop_hosxp ที่ มิถุนายน 16, 2008, 13:40:31 PM
ลองอันนี้ดูครับ


select  distinct o.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart
from vn_stat vs
left outer join patient p on p.hn = vs.hn
where vs.vstdate  between '2008-01-01' and '2008-05-10'
and p.moopart in ("4")
and p.tmbpart in ("01")
 and ( (vs.pdx = "I10")
 or (vs.dx0 = "I10")
 or (vs.dx1 = "I10")
 or (vs.dx2 = "I10")
 or (vs.dx3 = "I10")
 or (vs.dx4 = "I10")
 or (vs.dx5 = "I10"))
group by o.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: rimkong ที่ มิถุนายน 16, 2008, 16:16:55 PM
ขอบคุณมากครับ คุณ pop_hosxp แต่ก็ยังมีซ้ำมาอยู่นะครับแต่ก็ไม่มาก
วิทยายุทธของท่าน pop ช่างล้ำเลิศจริง ๆ ข้าน้อยขอนับถือ
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: pop_hosxp ที่ มิถุนายน 16, 2008, 23:03:47 PM
ไม่ขนาดนั้นหรอกครับ ไม่งั้นจะยังคงมีข้อมูลที่ซ้ำอยู่เหรอครับ
 ;D

จริง ๆ แล้ว การซ้ำน่าจะเกิดจากการหาข้อมูลที่เป็นแบบข้ามปี ทำให้อายุผู้ป่วยคนเดียวกัน ไม่เท่ากัน ถ้าจะให้ดีน่าจะเอาวันเกิดมาหาอายุจะได้ไม่ซ้ำอีก ครับ

ปล.ตอนนี้ใช้ pocket pc ตอบยากชะมัด  :D
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: rimkong ที่ มิถุนายน 17, 2008, 08:43:12 AM
อ้างถึง
จริง ๆ แล้ว การซ้ำน่าจะเกิดจากการหาข้อมูลที่เป็นแบบข้ามปี ทำให้อายุผู้ป่วยคนเดียวกัน ไม่เท่ากัน ถ้าจะให้ดีน่าจะเอาวันเกิดมาหาอายุจะได้ไม่ซ้ำอีก ครับ

 :'(จะต้องเพิ่มแก้ไขคำสั่งยังไงครับ คุณ pop_hosxp
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: SrWooD ที่ มิถุนายน 17, 2008, 08:56:38 AM
select  distinct o.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart
from vn_stat vs
left outer join patient p on p.hn = vs.hn
where vs.vstdate  between '2008-01-01' and '2008-05-10'
and p.moopart in ("4")
and p.tmbpart in ("01")
 and ( (vs.pdx = "I10")
 or (vs.dx0 = "I10")
 or (vs.dx1 = "I10")
 or (vs.dx2 = "I10")
 or (vs.dx3 = "I10")
 or (vs.dx4 = "I10")
 or (vs.dx5 = "I10"))
group by o.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart

 o.hn 

??? ??? ???
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: rimkong ที่ มิถุนายน 17, 2008, 09:11:31 AM
select  distinct vs.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart
from vn_stat vs
left outer join patient p on p.hn = vs.hn
where vs.vstdate  between '2008-01-01' and '2008-05-10'
and p.moopart in ("4")
and p.tmbpart in ("01")
 and ( (vs.pdx = "I10")
 or (vs.dx0 = "I10")
 or (vs.dx1 = "I10")
 or (vs.dx2 = "I10")
 or (vs.dx3 = "I10")
 or (vs.dx4 = "I10")
 or (vs.dx5 = "I10"))
group by vs.hn,p.pname,p.fname,p.lname,vs.age_y,p.moopart,p.tmbpart

 vs.hn 

 ;D ;D ;D ;D ;D
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: woravet ที่ มิถุนายน 17, 2008, 10:03:49 AM
select  p.hn,p.pname,p.fname,p.lname,v.age_y,p.moopart,p.tmbpart
from patient p
left  join vn_stat v on v.hn = p.hn
left join ovstdiag o on o.vn=v.vn
where v.vstdate  between '2008-1-1' and '2008-1-31'
and p.moopart='4'
and p.tmbpart='01'
and o.icd10 between 'i10' and 'i1599'
group by p.hn
order by p.hn

**ระวังไม่ระบุรหัสจังหวัดจะเป็นของจังหวัดอื่นได้ ถ้ามีข้อมูล
**ระวัง moopart ระบุอย่างไรบ้าง
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: pop_hosxp ที่ มิถุนายน 17, 2008, 10:55:40 AM
ขอโทษทีครับ ลืมแก้ตรงที่คุณ SrWood บอกครับ พอดีไม่ได้อยู่ที่ รพ. เลยยังไม่ได้ลอง run ในสายฟ้าก่อนครับ  :P
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: rimkong ที่ มิถุนายน 17, 2008, 11:14:03 AM
อ้างถึง
จริง ๆ แล้ว การซ้ำน่าจะเกิดจากการหาข้อมูลที่เป็นแบบข้ามปี ทำให้อายุผู้ป่วยคนเดียวกัน ไม่เท่ากัน ถ้าจะให้ดีน่าจะเอาวันเกิดมาหาอายุจะได้ไม่ซ้ำอีก ครับ

 :'(จะต้องเพิ่มแก้ไขคำสั่งยังไงครับ คุณ pop_hosxp
   รบกวนพี่ คุณ pop_hosxp ด้วยครับ ที่คุณ woravet แก้ให้เป็นการนำอายุมาแสดง
   ไม่ใช่เป็นการนำ เอาวันเกิดมาหาอายุ อย่าที่คุณ pop เสนอยังก็รบกวน คุณ pop ด้ยนะครับ
หัวข้อ: Re: รบกวนสอบถาม คำสั่ง SQL
เริ่มหัวข้อโดย: pop_hosxp ที่ มิถุนายน 17, 2008, 13:08:43 PM
ลองใช้ (datediff(p.birthdate, date())/365 as age

ไม่แน่ใจนะครับ ลองดูก่อนครับ ฝากอาจารย์ท่านอื่นตรวจสอบด้วยครับ

จริง ๆ ลองค้นหาดูใน forum เรื่องการหาอายุก็ได้ครับ รู้สว่าจะมีคนบอกไว้แล้วครับ