BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Guitar-hero ที่ พฤศจิกายน 05, 2013, 14:33:53 PM
-
สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน ครับ
คือ มีวิธีการเขียน sql อย่างไรครับ ต้องการดึงข้อมูลตามโจทย์นี้
1. clinicmember -> ต้องการดึงเฉพาะ คนไข้ที่เป็นโรคเบาหวานอย่างเดียว ไม่เป็นโรคอื่นร่วม
2. clinicmember -> ต้องการดึงคนไข้ที่เป็นโรคร่วม2โรค คือ คนไข้ที่เป็นทั้งเบาหวานและความดันร่วม
-
ลองโพสรายละเอียด Table ที่เกี่ยวข้องและ Data Dict หน่อยครับ
-
สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน ครับ
คือ มีวิธีการเขียน sql อย่างไรครับ ต้องการดึงข้อมูลตามโจทย์นี้
1. clinicmember -> ต้องการดึงเฉพาะ คนไข้ที่เป็นโรคเบาหวานอย่างเดียว ไม่เป็นโรคอื่นร่วม
2. clinicmember -> ต้องการดึงคนไข้ที่เป็นโรคร่วม2โรค คือ คนไข้ที่เป็นทั้งเบาหวานและความดันร่วม
ลองเอาไปศึกษาครับ
CUSTOM-ClinicMemberDMOnly.cds
-
ประมาณนี้ปะครับ :) :)
select t1.name as clinic,sum(t1.cc) as cc from (select c.name,count(cm.hn) as cc
from clinic c
inner join clinicmember cm on c.clinic = cm.clinic
left join patient p on p.hn = cm.hn
where cm.clinic = "001" and p.chwpart = "43" and p.amppart = "08"
group by cm.hn
having count(cm.hn) = 1 ) as t1
union
select t2.name,sum(t2.cc) as cc from (select c.name,count(cm.hn) as cc
from clinic c
inner join clinicmember cm on c.clinic = cm.clinic
left join patient p on p.hn = cm.hn
where cm.clinic = "002" and p.chwpart = "43" and p.amppart = "08"
group by cm.hn
having count(cm.hn) = 1 ) as t2
union
select "คลินิกเบาหวาน DM, คลินิกความดัน HT",sum(t3.cc) as cc from (select c.name,count(cm.hn) as cc
from clinic c inner join clinicmember cm on c.clinic = cm.clinic
left join patient p on p.hn = cm.hn
where cm.clinic in ("001","002") and p.chwpart = "43" and p.amppart = "08"
group by cm.hn
having count(cm.hn) = 2 ) as t3
-
select sum(dm.hn<>ht.hn) 'DM'
,sum(dm.hn=ht.hn) 'DMHT'
,sum(ht.hn is null) 'HT'
from (select * from clinicmember where clinic=001) dm
left join (select * from clinicmember where clinic=002) ht on ht.hn=dm.hn