สารบัญ

/*LOCATION ที่ตั้งของที่อยู่ผู้รับบริการ จะเห็นว่าบางส่วน ขาดความเชื่อมโยง Patient VS Person*/

SELECT

ovst.vn,ovst.hn,ovst.vstdate,person.pname
,concat(person.fname,space(1),person.lname)as'person_name'
,person.house_regist_type_id

from ovst

LEFT OUTER JOIN person on person.patient_hn = ovst.hn

WHERE ovst.vstdate BETWEEN concat(year(CURDATE())-1,'-','10-01')
and concat(year(CURDATE()),'-','09-30')

and person.house_regist_type_id is null

ORDER BY ovst.vn

#==================

ตัวอย่าง

vn hn vstdate pname person_name house_regist_type_id
161004161558 108173 2016-10-04 ด.ญ. วิภาพร xxx
161012092109 108262 2016-10-12 ด.ช. อานุชา xxx
591001000654 107904 2016-10-01
591001051645 64710 2016-10-01

/*ขาดความเชื่อมโยง Patient VS Person */

SET @date1 ='2015-10-01',@date2= '2016-09-30';

/*เปลี่ยนวันที่ตามต้องการ*/

SELECT s.vstdate,pt.pname

,CONCAT(pt.fname,SPACE(1),pt.lname)AS'patient_name'

,pt.nationality

,IF(pt.type_area IS NULL ,'ฝั่ง patient ว่าง', pt.type_area)AS type_area

,p.cid

FROM ovst s

INNER JOIN patient pt

ON pt.hn = s.hn

INNER JOIN thaiaddress a

ON a.addressid = pt.addressid

LEFT JOIN person p

ON p.cid = pt.cid

WHERE p.cid IS NULL

AND s.vstdate BETWEEN @date1 AND @date2

ORDER BY pt.nationality,s.vstdate;

#================

ตัวอย่าง

vstdate pname patient_name nationality type_area cid
2016-07-08 ด.ช. ทินภัทร xxxx 99 ฝั่ง patient ว่าง null
2016-07-08 นาย ประสิทธิ์พร xxxx 99 ฝั่ง patient ว่าง null
2016-07-08 นาย ประสิทธิ์พร xxxx 99 ฝั่ง patient ว่าง null
2016-07-08 นาย สิรกร xxxx 99 ฝั่ง patient ว่าง null