SELECT
concat(ctitle.titlename,person.fname," ",person.lname)as'ชื่อ-สกุล',
house.hno as ที่อยู่,
village.villno as หมู่,
village.villname as บ้าน,
person.typelive,
CONCAT(DATE_FORMAT(person.birth,'%d/%m/'),DATE_FORMAT(person.birth,'%Y')+543)as วันเกิด ,
YEAR( FROM_DAYS( DATEDIFF(CURDATE(),person.birth ) ) ) as อายุปี,
getagemonth(person.birth,CURDATE() )as อายุเดือน,
CONCAT(DATE_FORMAT(epi0.dateepi,'%d/%m/'),DATE_FORMAT(epi0.dateepi,'%Y')+543)as 'BCG',
(CASE WHEN (epi0.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi0.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับBCGที่,
CONCAT(DATE_FORMAT(epi1.dateepi,'%d/%m/'),DATE_FORMAT(epi1.dateepi,'%Y')+543)as 'DHB1',
(CASE WHEN (epi1.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi1.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับDHB1ที่,
CONCAT(DATE_FORMAT(epi11.dateepi,'%d/%m/'),DATE_FORMAT(epi11.dateepi,'%Y')+543)as 'OPV1',
(CASE WHEN (epi11.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi11.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับOPV1ที่,
CONCAT(DATE_FORMAT(epi2.dateepi,'%d/%m/'),DATE_FORMAT(epi2.dateepi,'%Y')+543)as 'DHB2',
(CASE WHEN (epi2.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi2.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับDHB2ที่,
CONCAT(DATE_FORMAT(epi21.dateepi,'%d/%m/'),DATE_FORMAT(epi21.dateepi,'%Y')+543)as 'OPV2',
(CASE WHEN (epi21.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi21.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับOPV2ที่,
CONCAT(DATE_FORMAT(epi3.dateepi,'%d/%m/'),DATE_FORMAT(epi3.dateepi,'%Y')+543)as 'DHB3',
(CASE WHEN (epi3.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi3.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับDHB3ที่,
CONCAT(DATE_FORMAT(epi31.dateepi,'%d/%m/'),DATE_FORMAT(epi31.dateepi,'%Y')+543)as 'OPV3',
(CASE WHEN (epi31.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi31.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับOPV3ที่,
getagemonth(person.birth,epi3.dateepi)as รับDTP3_อายุ,
CONCAT(DATE_FORMAT(epi4.dateepi,'%d/%m/'),DATE_FORMAT(epi4.dateepi,'%Y')+543)as 'MMR',
(CASE WHEN (epi4.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi4.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับMMRที่,
getagemonth(person.birth,epi4.dateepi)as รับMMR_อายุ,
CONCAT(DATE_FORMAT(epi5.dateepi,'%d/%m/'),DATE_FORMAT(epi5.dateepi,'%Y')+543)as 'DTP4',
(CASE WHEN (epi5.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi5.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับDTP4ที่,
CONCAT(DATE_FORMAT(epi51.dateepi,'%d/%m/'),DATE_FORMAT(epi51.dateepi,'%Y')+543)as 'OPV4',
(CASE WHEN (epi51.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi51.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับOPV4ที่,
CONCAT(DATE_FORMAT(epi6.dateepi,'%d/%m/'),DATE_FORMAT(epi6.dateepi,'%Y')+543)as 'JE1',
(CASE WHEN (epi6.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi6.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับJE1ที่,
CONCAT(DATE_FORMAT(epi7.dateepi,'%d/%m/'),DATE_FORMAT(epi7.dateepi,'%Y')+543)as 'JE2',
(CASE WHEN (epi7.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi7.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับJE2ที่,
CONCAT(DATE_FORMAT(epi8.dateepi,'%d/%m/'),DATE_FORMAT(epi8.dateepi,'%Y')+543)as 'JE3',
(CASE WHEN (epi8.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi8.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับJE3ที่,
CONCAT(DATE_FORMAT(epi9.dateepi,'%d/%m/'),DATE_FORMAT(epi9.dateepi,'%Y')+543)as 'DTP5',
(CASE WHEN (epi9.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi9.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับDTP5ที่,
CONCAT(DATE_FORMAT(epi91.dateepi,'%d/%m/'),DATE_FORMAT(epi91.dateepi,'%Y')+543)as 'OPV5'
,(CASE WHEN (epi91.hosservice = person.pcucodeperson) THEN 'รับที่นี้'
WHEN (epi91.hosservice <> person.pcucodeperson) THEN 'รับที่อื่น'ELSE null END) as รับOPV5
FROM person
INNER JOIN house on person.hcode=house.hcode AND person.pcucodeperson=house.pcucodeperson
INNER JOIN village on house.villcode = village.villcode and house.pcucode = village.pcucode
INNER JOIN ctitle on person.prename=ctitle.titlecode
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice
from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='010')as epi0 on person.pid=epi0.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice
from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='091')as epi1 on person.pid=epi1.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='081')as epi11 on person.pid=epi11.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='092')as epi2 on person.pid=epi2.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='082')as epi21 on person.pid=epi21.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='093')as epi3 on person.pid=epi3.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='083')as epi31 on person.pid=epi31.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='061')as epi4 on person.pid=epi4.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='034')as epi5 on person.pid=epi5.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='084')as epi51 on person.pid=epi51.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='051')as epi6 on person.pid=epi6.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='052')as epi7 on person.pid=epi7.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='053')as epi8 on person.pid=epi8.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='035')as epi9 on person.pid=epi9.pid
LEFT JOIN (select visitepi.pid,visitepi.dateepi,visitepi.vaccinecode,visitepi.pcucode,visitepi.pcucodeperson, visitepi.hosservice from visitepi
INNER JOIN cdrug on visitepi.vaccinecode=cdrug.drugcode
WHERE cdrug.files18epi='085')as epi91 on person.pid=epi91.pid
WHERE person.typelive in ('0','1','3') and right(house.villcode,2)!='00' and person.birth between '20081001' and '20140930'
GROUP BY CONCAT(person.pcucodeperson,person.pid)
ORDER BY person.mumoi,person.birth;