โจทย์ก็คือ อยากที่จะให้คะแนน ผู้ป่วยเบาหวานในคลินิค อ่ะ ว่าในรอบ 3 เดือนที่ผ่านมา คุมความดันได้กี่ครั้ง คุมระดับน้ำตาลได้กี่ครั้ง เป็น Good visit กี่ครั้ง
หลังจากพลัดผ่อนมานานจนถึง death line 2013-03-21 23.59 น.
ได้คำสั้ง SQL ดังนี้
SELECT v.hn,v.vstdate,o.bps,o.bpd,o.fbs,f.dtx1,
sum(CASE WHEN o.bps BETWEEN "90" and "130" THEN 1 ELSE 0 END) AS bpsgood,
sum(CASE WHEN o.fbs BETWEEN "70" and "140" THEN 1 ELSE 0 END) AS fbsgood,
sum(CASE WHEN f.dtx1 BETWEEN "70" and "140" THEN 1 ELSE 0 END) AS dtxgood,
count(DISTINCT v.vn) as visitgood,
(sum(CASE WHEN o.bps BETWEEN "90" and "130" THEN 1 ELSE 0 END) +
sum(CASE WHEN o.fbs BETWEEN "70" and "140" THEN 1 ELSE 0 END) +
sum(CASE WHEN f.dtx1 BETWEEN "70" and "140" THEN 1 ELSE 0 END) ) AS TOTAL
FROM vn_stat v
LEFT OUTER JOIN clinicmember c on c.hn=v.hn
LEFT OUTER JOIN person p on p.patient_hn=v.hn
LEFT OUTER JOIN opdscreen o on o.vn=v.vn
LEFT OUTER JOIN opdscreen_fbs f on f.vn=v.vn
WHERE v.vstdate BETWEEN "2013-01-01" and "2013-03-31" and c.clinic = "001"
and c.clinic_member_status_id = "1" and c.discharge = "N" and p.village_id <> "1"
and (o.bmi <> "" or o.bmi is not NULL)
and o.bpd <> "0" and (o.fbs <> "0" or dtx1 <> "0")
GROUP BY v.hn
ORDER BY TOTAL DESC
LIMIT 20
ขอขอบคุณ คุณอภิศักดิ์ สำหรับคำแนะนำเรื่อง SQL Code
#keepper
0 ความคิดเห็น:
Post a Comment