รายชื่อ ปชก. ในเขต อายุ 50-70 ปี พร้อมผลการคัดกรองมะเร็งลำไส้ในปี
09 Apr 2026
คำสั่ง รายชื่อ ปชก. ในเขต อายุ 50-70 ปี พร้อมผลการคัดกรองมะเร็งลำไส้ในปี
SELECT h.address,v.village_moo,v.village_name,
CONCAT(p.pname, p.fname, ' ', p.lname) AS fullname,
TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age_y,p.cid,p.pttype,p.patient_hn,pp.pp_code
FROM person p
LEFT JOIN house h
ON p.house_id = h.house_id
LEFT JOIN village v
ON h.village_id = v.village_id
-- 🔥 subquery ใหม่ (แก้ GROUP BY ให้ถูกต้อง)
LEFT JOIN (
SELECT pp.hn, GROUP_CONCAT( CONCAT(DATE(pp.entry_datetime), '-', t.pp_special_code)
ORDER BY pp.entry_datetime
SEPARATOR ', '
) AS pp_code
FROM pp_special pp INNER JOIN pp_special_type t ON pp.pp_special_type_id = t.pp_special_type_id
WHERE DATE(pp.entry_datetime)
BETWEEN '2024-10-01' AND '2026-09-30'
AND t.pp_special_code IN ('1B0060', '1B0061')
GROUP BY pp.hn
) pp
ON p.patient_hn = pp.hn
WHERE v.village_moo <> '0' AND p.house_regist_type_id IN ('1', '3') AND p.nationality = '99' AND p.person_discharge_id = '9'
-- 🔥 อายุ 50–70 ปี (ใช้แบบแม่นกว่า)
AND TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) BETWEEN 50 AND 70
ORDER BY
v.village_id, h.address;