select p.hn,p.pname,p.fname,p.lname
,o1.icd10 as 'dm'
,o2.icd10 as 'dent'
,min(o1.vstdate) as date_dm
,min(o2.vstdate) as date_ht
from patient p
left outer join ovstdiag o1 on o1.hn=p.hn
left outer join ovstdiag o2 on o2.hn=o1.hn
where o1.icd10 between 'e100' and 'e119'
and o2.icd10 between 'i10' and 'i10'
and o1.vstdate between '2008-06-01' and '2008-09-30'
and o2.vstdate between '2008-06-01' and '2008-09-30'
group by p.hn
order by o1.vstdate
ส่วนที่อยู๋รอแป๊ปครับ พี่ระบุช่วง ICD10 เอานะครับเพราะผมไม่คอยทราบ