query
SELECT *FROM((SELECT ovst.hn, ovst.vn, pt.pname, pt.fname, pt.lname, IFNULL(pt.addrpart, '') AS 'บ้านเลขที่', IFNULL(pt.moopart, '') AS 'หมู่ที่', IFNULL(t3.name, '') AS 'ตำบล', IFNULL(t2.name, '') AS 'อำเภอ', IFNULL(t1.name, '') AS 'จังหวัด', ovst.vstdate-- ,GROUP_CONCAT(DISTINCT od.icd10 ORDER BY od.diagtype, od.icd10 SEPARATOR ', ') AS all_diagnosesFROM ovstINNER JOIN patient pt ON pt.hn = ovst.hn-- JOIN เพื่อแสดงรายการ Diag ทั้งหมดใน visit นั้นLEFT JOIN ovstdiag od ON od.vn = ovst.vn-- JOIN สำหรับสร้างที่อยู่LEFT JOIN thaiaddress t1 ON t1.chwpart = pt.chwpart AND t1.amppart = '00' AND t1.tmbpart = '00'LEFT JOIN thaiaddress t2 ON t2.chwpart = pt.chwpart AND t2.amppart = pt.amppart AND t2.tmbpart = '00'LEFT JOIN thaiaddress t3 ON t3.chwpart = pt.chwpart AND t3.amppart = pt.amppart AND t3.tmbpart = pt.tmbpartWHERE ovst.vstdate BETWEEN '2024-10-01' AND '2025-09-30' -- เงื่อนไขที่ 1: ต้องมี E114 เป็น Diag หลัก (diagtype = '1') ใน visit นั้น AND EXISTS ( SELECT 1 FROM ovstdiag WHERE vn = ovst.vn AND icd10 = 'E114' AND diagtype = '1' ) -- เงื่อนไขที่ 2: และต้องมี G632 เป็น Diag ร่วมใน visit เดียวกัน AND EXISTS ( SELECT 1 FROM ovstdiag WHERE vn = ovst.vn AND icd10 = 'G632' )GROUP BY ovst.vn, ovst.hn, pt.pname, pt.fname, pt.lname)UNION(SELECT ovst.hn, ovst.vn, pt.pname, pt.fname, pt.lname, IFNULL(pt.addrpart, '') AS 'บ้านเลขที่', IFNULL(pt.moopart, '') AS 'หมู่ที่', IFNULL(t3.name, '') AS 'ตำบล', IFNULL(t2.name, '') AS 'อำเภอ', IFNULL(t1.name, '') AS 'จังหวัด', ovst.vstdate-- ,GROUP_CONCAT(DISTINCT od.icd10 ORDER BY od.diagtype, od.icd10 SEPARATOR ', ') AS all_diagnosesFROM ovstINNER JOIN patient pt ON pt.hn = ovst.hn-- JOIN เพื่อแสดงรายการ Diag ทั้งหมดใน visit นั้นLEFT JOIN ovstdiag od ON od.vn = ovst.vn-- JOIN สำหรับสร้างที่อยู่LEFT JOIN thaiaddress t1 ON t1.chwpart = pt.chwpart AND t1.amppart = '00' AND t1.tmbpart = '00'LEFT JOIN thaiaddress t2 ON t2.chwpart = pt.chwpart AND t2.amppart = pt.amppart AND t2.tmbpart = '00'LEFT JOIN thaiaddress t3 ON t3.chwpart = pt.chwpart AND t3.amppart = pt.amppart AND t3.tmbpart = pt.tmbpartWHERE ovst.vstdate BETWEEN '2024-10-01' AND '2025-09-30' -- เงื่อนไขที่ 1: ต้องมี E114 เป็น Diag หลัก (diagtype = '1') ใน visit นั้น AND EXISTS ( SELECT 1 FROM ovstdiag WHERE vn = ovst.vn AND icd10 = 'E115' AND diagtype = '1' ) -- เงื่อนไขที่ 2: และต้องมี G632 เป็น Diag ร่วมใน visit เดียวกัน AND EXISTS ( SELECT 1 FROM ovstdiag WHERE vn = ovst.vn AND icd10 = 'I792' )GROUP BY ovst.vn, ovst.hn, pt.pname, pt.fname, pt.lname)) zGROUP BY z.hn