1
การเขียน SQL Script / Re: จะรบกวน ขอsql รายงานผลlab คนไข้มาตรวจสุขภาพหน่อย ครับ
« เมื่อ: มิถุนายน 11, 2018, 15:03:49 PM »
ถ้าต้องการทำเป็นสามปีงบประมาณย้อนหลัง ต้องทำยังไงบ้างครับ... จากรายงานตรวจสุขภาพข้างบนคับ
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
ความเร่งด่วน--->select * from pt_priority
ประเภทผู้ป่วย--->select * from opdscreen_patient_type
ไม่แยกผู้ป่วยนอก/ใน เหรอครับ
select n.name,count(distinct o.hn) as PERSON,count(o.vn)as VISIT,sum(o.sum_price) as SUM from opitemrece ocount(o.vn)as VISIT จะได้เท่าจำนวน record ของ vn นั้น ๆ ใน opitemrece
left outer join patient p on p.hn=o.hn
left outer join nationality n on n.nationality=p.nationality
where vstdate between "2014-10-01" and "2015-09-30"
and p.nationality <> "99"
group by p.nationality
ลองเปลี่ยนเป็น count(distinct o.vn)as VISIT
select c.hn,pt.pname,pt.fname,pt.lname,max(s.vstdate) lastdate
,substring_index(group_concat(cast(bps as decimal) order by vn desc),',',3) bps
,substring_index(group_concat(cast(bpd as decimal) order by vn desc),',',3) bpd
from opdscreen s
left join clinicmember c on s.hn=c.hn
left join patient pt on c.hn=pt.hn
where c.clinic=002
and s.vstdate between '2012-10-1' and '2013-9-30'
and s.bps>0
group by c.hn
ไม่มีครับ ยังไม่สามารถทำได้ในตอนนี้ครับก่อนอื่นก็ขอบคุณ อ.golf_win ก่อนเลยครับ
ท่านต้องไปถามคนที่ลงข้อมูลด้วยนะครับ ว่าลงข้อมูลตรงไหน เวลาทำ UltraSound ถ้าลงแท็บหัตถการ ก็เอาตาม อ.golf_win ได้เลยนะครับ แต่หากบางแห่งลงในแท็บ ค่าบริการ คงต้องไปจับจาก icode ใน opitemreace เอานะครับ
ผมใช้การบันทึกจากหัตถการครับ
OPD-->doctor_operation
IPD-->ipt_nurse_oper
ขอลองไล่ทีละข้อครับ
เอาแต่ผลลัพธ์ตัวเลขใช่ไหมครับ
F = ผู้ป่วย NCD ได้แก่ คลินิกเบาหวาน,ความดัน,หอบหืด,ไต,หัวใจ
ทั้งหมดที่มีผลการคัดกรอง >= 7 มีกี่คน
โค้ดคือ
select count(distinct(v.hn)) from depression_screen d1
left outer join vn_stat v on v.vn = d1.vn
LEFT OUTER JOIN clinicmember c ON c.hn=v.hn
where vn.vstdate between "'+d1+'" and "'+d2+'"
and c.clinic in("1","10","2","9","13")
and d1.depression_score>=7
ไม่รู้ว่าเหมือนกันไหมนะครับ ถ้าตัดตารางที่ไม่เกี่ยวข้องจะทำให้หาข้อมูลได้เร็วขึ้นครับ
กำลังมึนกับคำถาม ขอแกล้งตายแปป
ข้อ D กับ F ทำไมต้อง join หลายตาราง ทั้ง ๆ ที่ไม่ได้ใช้ครับ
แบบนี้ไหมครับ
select count(distinct(hn)) as hn from ovstdiag o
where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and icd10 BETWEEN "A070" and "A099";
+
select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and icd10 BETWEEN "A070" and "A099" ;
แบบนี้ไหมครับ
select count(distinct(hn)) as hn from ovstdiag o
where o.vstdate BETWEEN "2010-10-01" AND "2011-09-30" and icd10 BETWEEN "A070" and "A099";
+
select count(distinct(ip.hn)) as hn from iptdiag i,ipt ip
where i.an=ip.an and ip.dchdate BETWEEN "2010-10-01" AND "2011-09-30" and icd10 BETWEEN "A070" and "A099" ;