query ipd จาก icd10 และตามช่วงอายุ

query ipd : influ สายพันธุ์ A

SELECT
i.hn,
i.an,
i.regdate AS date_visit,
IFNULL(CONCAT(p.pname, p.fname, ' ', p.lname), '') AS ptname,
p.sex,
p.birthday,
FLOOR(DATEDIFF(i.regdate, p.birthday) / 365.25) AS age_years,
-- เพิ่มการคำนวณอายุเป็น เดือน และ วัน เพื่อความละเอียด
TIMESTAMPDIFF(MONTH, p.birthday, i.regdate) % 12 AS age_months,
FLOOR(TIMESTAMPDIFF(DAY, p.birthday, i.regdate) % 30.4375) AS age_days,
d.icd10,
IFNULL(icd.name, '') AS icd10_name,
'IPD' AS patient_type,
i.ward AS ward_code,
w.name AS ward_name
FROM
ipt i
INNER JOIN
iptdiag d ON i.an = d.an AND d.diagtype IN ('1', '2')
LEFT JOIN
patient p ON i.hn = p.hn
LEFT JOIN
icd101 icd ON d.icd10 = icd.code
LEFT JOIN
ward w ON i.ward = w.ward
WHERE
i.regdate BETWEEN '2024-10-01' AND '2025-09-30'
AND d.icd10 = 'J101'
 
AND TIMESTAMPDIFF(MONTH, p.birthday, i.regdate) >= 6
AND FLOOR(DATEDIFF(i.regdate, p.birthday) / 365.25) <= 15
ORDER BY
w.name ASC, i.regdate ASC, i.hn ASC;