SELECT
p1.pid AS HN,
CONCAT(c.titlename,p1.fname,' ',p1.lname) AS `ชื่อ-สกุล`,
p1.idcard AS `เลขบัตรประชาชน`,
getAgeYearNum (p1.birth,CURDATE()) AS `อายุ`,
p1.hnomoi AS `บ้านเลขที่`,
p1.mumoi AS `หมู่ที่`,
GROUP_CONCAT(c3.mapdisease) AS `โรคเรื้อรัง`,
p2.datefirstdiag AS `วันที่ป่วยครั้งแรก`,
p2.datedxfirst AS `วันที่ติดตาม`,
p2.cup AS `สถานบริการที่รักษา`,
p2.hospfirstdiag AS `สถานบริการที่วินิจฉัย`,
p2.typedischart
FROM
person AS p1
INNER JOIN personchronic AS p2 ON p1.pcucodeperson = p2.pcucodeperson AND p1.pid = p2.pid
INNER JOIN ctitle AS c ON p1.prename = c.titlecode
INNER JOIN chospital AS c2 ON p2.cup = c2.hoscode
INNER JOIN cdisease AS c3 ON p2.chroniccode = c3.diseasecode
WHERE
p1.pid NOT IN ((SELECT persondeath.pid FROM persondeath)) AND
getAgeYearNum (p1.birth,CURDATE()) < 59 AND
p1.typelive IN (0, 1, 3) AND
p1.dischargetype = 9
GROUP BY
p1.pid;