เอาจาก patient นะครับอันนี้ ไม่ได้อยู่รพ. เลยไม่แน่ใจว่าตาราง person นี้จะมี field ที่เหมือนกันกับ patient หรือเปล่า ถ้าเหมือนก็สามารถเปลี่ยน patient เป็น person ได้เลยครับ
select concat(p.pname, p.fname,' ',p.lname) as ptname, year(now())-year(p.birthday) as age_Y, p.addrpart, p.moopart, t.fullname as addressname, s.name as sex
from patient p
left outer join thaiaddress t on t.tmbpart=p.tmbpart and t.amppart=p.amppart and t.chwpart=p.chwpart
left outer join sex s on s.code=p.sex
where year(now())-year(p.birthday) between "30" and "60"