SELECT
prs.*,
max(visit.visitdate) as mvd,
max(visit.visitno) as mvn,
visit.weight
from (
SELECT
house.villcode,
house.hno,
person.pid,
ctitle.titlename,
person.fname,
person.lname,
person.sex,
timestampdiff(year,person.birth,CURDATE()) AS `ปี`,
visit.visitdate,
visit.visitno,
cdisease.diseasecode,
cdisease.diseasenamethai
FROM
house
INNER JOIN person ON house.hcode = person.hcode
LEFT JOIN ctitle ON person.prename = ctitle.titlecode
INNER JOIN visit ON person.pid = visit.pid
INNER JOIN visitdiag ON visit.visitno = visitdiag.visitno
INNER JOIN cdisease ON visitdiag.diagcode = cdisease.diseasecode
WHERE
cdisease.diseasenamethai LIKE '%ใบไม้%'
AND visit.visitdate >= '20141001'
GROUP BY person.pid) as prs
LEFT JOIN
visit on prs.pid = visit.pid
where visit.weight IS NOT NULL
GROUP BY prs.pid
ORDER BY prs.villcode