BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Kang_BRJ ที่ มกราคม 22, 2014, 15:45:52 PM

หัวข้อ: SQL หาข้อมูลผู้รับบริการจิตเวชครับ
เริ่มหัวข้อโดย: Kang_BRJ ที่ มกราคม 22, 2014, 15:45:52 PM
ต้องการข้อมูลผู้ที่มารับบริการคลินิกปรึกษา (จิตเวช)
แต่ลอง (หัด) เขียนดูแล้ว ยังได้ข้อมูลมาไม่ครบครับ

SELECT ovst.hn,ovst.vsttime,ovst.vstdate,ovst.spclty,
concat(patient.fname,' ',patient.lname) as patient_name, patient.birthday , spclty.name
FROM ovst
LEFT OUTER JOIN patient on patient.hn=ovst.hn
LEFT OUTER JOIN spclty on spclty.spclty=ovst.spclty
WHERE ovst.vstdate between '2013-12-26' and '2014-01-22'
AND ovst. spclty IN ( '09' )
ORDER BY patient_name

อยากได้อายุ, เลขประชาชน, Diag โรค และ ICD9+ICD10 ด้วย
ต้องเพิ่มอะไรตรงไหนบ้างครับ
หัวข้อ: Re: SQL หาข้อมูลผู้รับบริการจิตเวชครับ
เริ่มหัวข้อโดย: asawincyber ที่ มกราคม 22, 2014, 16:13:26 PM
SELECT vn_stat.hn,vn_stat.vstdate,vn_stat.spclty,
concat(patient.fname,' ',patient.lname) as patient_name, patient.birthday , spclty.name,patient.cid,age_y,pdx ,i.name
FROM vn_stat
LEFT OUTER JOIN patient on patient.hn=vn_stat.hn
LEFT OUTER JOIN spclty on spclty.spclty=vn_stat.spclty
left outer join icd101 i on i.code=vn_stat.pdx
WHERE vn_stat.vstdate between '2013-12-26' and '2014-01-22'
AND vn_stat. spclty IN ( '09' )
ORDER BY patient_name


ตาราง vn_stat มี age_y เก็บไว้ และ pdx น่าจะหาง่ายกว่าครับ ผมเลยจับจากตาราง vn_stat แต่ทำให้ข้อมูล VSTTIME ไม่มี ถ้าต้องการก็ไป join กับ OVST อีกครั้ง
หัวข้อ: Re: SQL หาข้อมูลผู้รับบริการจิตเวชครับ
เริ่มหัวข้อโดย: apatnon86 ที่ มกราคม 23, 2014, 11:00:41 AM
select v.vstdate,o.vsttime,s.name,v.hn,concat(p.pname,p.fname,"  ",p.lname) as patient_name,
         p.cid,p.birthday,v.age_y,concat(v.pdx," : ",i.name) as pdx,v.dx0,v.dx1,v.dx2,v.dx3,v.dx4
from vn_stat v
        left outer join ovst o on v.vn=o.vn
        left outer join patient p on v.hn=p.hn
        left outer join spclty s on o.spclty=s.spclty
        left outer join icd101 i on v.pdx=i.code
where v.vstdate between "2013-12-26" and "2014-01-22"
          and o. spclty in ("09")
order by patient_name


มีข้อมูลออกหรือเปล่าครับ ถ้าไม่มีคงต้องจับจาก Diag แทน
หัวข้อ: Re: SQL หาข้อมูลผู้รับบริการจิตเวชครับ
เริ่มหัวข้อโดย: Kang_BRJ ที่ มกราคม 23, 2014, 15:33:31 PM
มีข้อมูลออกจาก SQL ทั้งสองตัวเลยครับ
เดี๋ยวเอาไปแกะแล้วเรียนรู้ต่อ

ขอบคุณมาก ๆ ครับ  :)