BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: Guitar-hero ที่ พฤศจิกายน 05, 2013, 14:33:53 PM

หัวข้อ: สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน
เริ่มหัวข้อโดย: Guitar-hero ที่ พฤศจิกายน 05, 2013, 14:33:53 PM
สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน  ครับ
คือ มีวิธีการเขียน sql อย่างไรครับ ต้องการดึงข้อมูลตามโจทย์นี้

1. clinicmember -> ต้องการดึงเฉพาะ คนไข้ที่เป็นโรคเบาหวานอย่างเดียว ไม่เป็นโรคอื่นร่วม
2. clinicmember -> ต้องการดึงคนไข้ที่เป็นโรคร่วม2โรค คือ คนไข้ที่เป็นทั้งเบาหวานและความดันร่วม

หัวข้อ: Re: สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน
เริ่มหัวข้อโดย: host4thai.com ที่ พฤศจิกายน 06, 2013, 22:58:35 PM
ลองโพสรายละเอียด Table ที่เกี่ยวข้องและ Data Dict หน่อยครับ
หัวข้อ: Re: สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน
เริ่มหัวข้อโดย: udomchok ที่ พฤศจิกายน 07, 2013, 01:49:09 AM
สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน  ครับ
คือ มีวิธีการเขียน sql อย่างไรครับ ต้องการดึงข้อมูลตามโจทย์นี้

1. clinicmember -> ต้องการดึงเฉพาะ คนไข้ที่เป็นโรคเบาหวานอย่างเดียว ไม่เป็นโรคอื่นร่วม
2. clinicmember -> ต้องการดึงคนไข้ที่เป็นโรคร่วม2โรค คือ คนไข้ที่เป็นทั้งเบาหวานและความดันร่วม

ลองเอาไปศึกษาครับ
CUSTOM-ClinicMemberDMOnly.cds
หัวข้อ: Re: สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน
เริ่มหัวข้อโดย: redfireball ที่ พฤศจิกายน 07, 2013, 10:24:42 AM
ประมาณนี้ปะครับ  :) :)

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
หัวข้อ: Re: สอบถามเซียน sql คลินิคเบาหวาน การ select คนไข้เบาหวาน,เบาหวาน+ความดัน
เริ่มหัวข้อโดย: jameborn ที่ พฤศจิกายน 07, 2013, 15:39:22 PM
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