สารบัญ

person

person

แฟ้ม person

/*patient not in person */

SELECT e.`hn`,e.`cid`,e.`pname`

,concat( e. `fname`, space( 1), e.lname)as 'patient_name'

, e. birthday

FROM patient AS e

left join person as p on p. cid = e . cid

where

p. person_id is null

and e . chwpart = '72'

and e . cid is not null

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

ตัวอย่าง

hn cid pname patient_name birthday
98134 8888888888888 นาง อรอนงค์ xxx 7/3/1970
55809 8888888888888 นาง พิมพ์ใจ xxx 19/10/1961
101671 8888888888888 นาง ดวงหทัย xxx 1/1/1942
98389 8888888888888 นาย วัศพล xxx 27/5/1993
96137 8888888888888 ด.ช. รัตนวิช xxx 26/3/2000

/*Check Pname ตรวจสอบคำนำหน้่าไม่อยู่ในมาตรฐาน*/

SELECT cid,patient_hn AS hn

,pname

,concat(fname,space(1),lname) as 'person_name'

,sex

,birthdate

FROM person p

LEFT JOIN provis_pname pr ON pr.provis_pname_short_name = p.pname

WHERE pr.provis_pname_short_name IS NULL UNION

SELECT cid,hn,pname

,concat(fname,space(1),lname) as 'person_name'

,sex

,birthday AS birthdate

FROM patient pp

LEFT JOIN provis_pname pr ON pr.provis_pname_short_name = pp.pname

WHERE pr.provis_pname_short_name IS NULL;

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

ตัวอย่าง

cid hn pname person_name sex birthdate
8888888888888 0051955 พันจ่าเอก ภิรมย์ xxx 1 1965-05-01
8888888888888 0003456 ว่าที่ ร.ต.ญ ปิยะทิพย์ xxx 2 1988-09-14
8888888888888 0100666 นางสาว กนกรส xxx 2 1984-05-14
8888888888888 0041446 ว่าที่ ร.ต.ญ พรพิมล xxx 2 1988-11-03

/*ใช้ตรวจสอบคำนำหน้าว่ามีหรือไม่*/

set @a = 'นาง';

SELECT

p.patient_hn,p.cid,p.pname

,concat(p.fname,space(1),p.lname)as 'person_name'

,p.sex

,'person'as 'table'

FROM

person AS p

WHERE p.pname = @a

union

SELECT

pt.hn,pt.cid,pt.pname

,concat(pt.fname,space(1),pt.lname)as 'person_name'

,pt.sex

,'patient'as 'table'

FROM

patient AS pt

WHERE

pt.pname = @a ;

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

ตัวอย่าง

patient_hn cid pname person_name sex table
47 8888888888888 นาง ภัทรทิรา xxx 2 person
48 8888888888888 นาง สุรีย์พร xxx 2 person
54 8888888888888 นาง มาลี xxx 2 person
57 8888888888888 นาง ศิริรัตน์ xxx 2 patient
97 8888888888888 นาง เบ็ญจวรรณ xxx 2 patient


/*เปลี่ยนคำนำหน้า*/

UPDATE patient

SET pname = '..',last_update = NOW()/*เปลี่ยนเป็น*/

WHERE pname ='เด็กชาย';/*ที่จะเปลี่ยน*/

UPDATE person

SET pname = '..',last_update = NOW()/*เปลี่ยนเป็น*/

WHERE pname ='เด็กชาย';/*ที่จะเปลี่ยน*/

/*Pname not in provis_pname*/

SELECT p.pname

,concat(p.fname,space(1),p.lname)as person_name

,'person' as 'table'

from person p

WHERE p.pname not in (SELECT pv.provis_pname_short_name FROM provis_pname AS pv )

union

SELECT pt.pname

,concat(pt.fname,space(1),pt.lname)as person_name

,'patient' as 'table'

from patient pt

WHERE pt.pname not in (SELECT pv.provis_pname_short_name FROM provis_pname AS pv )

;

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

ตัวอย่าง

pname person_name table
นางสาว ลลิตา xxx patient
นางสาว ปิติมน xxx patient
นางสาว ฎรินรัตน์ xxx person
นางสาว ปฐมพร xxx person
นางสาว กิติยาพร xxx person

/*update provis_code pname ถ้า ว่างเปล่าหรือ ผิด*/

UPDATE pname p

SET provis_code = CONCAT('00',LEFT(P.class,1))

WHERE LENGTH(P.class)<4 ;

UPDATE pname p

set provis_code = left(P.class,3)

WHERE LENGTH(P.class)=4 ;

select * from pname;

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

 

ตัวอย่าง

name class sex provis_code hos_guid hos_guid_ext min_age marrystatus
นาง 5 2 005        
นาย 3 1 003        
พ.จ.ต. 97 1 003        
พ.จ.ท. 53 1 003        

/*set ให้ใช้ 4ตำแหน่ง*/

UPDATE provis_pname

SET provis_pname_short_name = provis_pname_long_name

WHERE provis_pname_code in ('681','226','377','526');

DELETE from pname where provis_code in ('681','226','377','526');

INSERT IGNORE INTO `pname` (`name`, `class`, `sex`, `provis_code`, `hos_guid`, `hos_guid_ext`, `min_age`) VALUES ('พลตำรวจ', 6811, '1', '681', '', '', NULL);

INSERT IGNORE INTO `pname` (`name`, `class`, `sex`, `provis_code`, `hos_guid`, `hos_guid_ext`, `min_age`) VALUES ('พลทหาร', 2261, '1', '226', '', '', NULL);

INSERT IGNORE INTO `pname` (`name`, `class`, `sex`, `provis_code`, `hos_guid`, `hos_guid_ext`, `min_age`) VALUES ('พลฯทหารเรือ', 3771, '1', '377', '', '', NULL);

INSERT IGNORE INTO `pname` (`name`, `class`, `sex`, `provis_code`, `hos_guid`, `hos_guid_ext`, `min_age`) VALUES ('พลฯทหารอากาศ', 5261, '1', '526', '', '', NULL);

select * from provis_pname where provis_pname_short_name in('พลตำรวจ','พลทหาร','พลฯทหารเรือ','พลฯทหารอากาศ');

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

ตัวอย่าง

provis_pname_code provis_pname_short_name provis_pname_long_name hos_guid
681 พลตำรวจ พลตำรวจ  
226 พลทหาร พลทหาร  
377 พลฯทหารเรือ พลฯทหารเรือ  
526 พลฯทหารอากาศ พลฯทหารอากาศ  




/*BIRTH birthdate null*/

SELECT

p.cid

,p.pname

,CONCAT(p.fname,SPACE(1),p.lname) AS 'person_name',

p.nationality

,p.birthdate,'person' AS 'table'

FROM

person AS p

WHERE

p.birthdate IS NULL

UNION

SELECT

pt.cid

,pt.pname

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

,pt.nationality

,pt.birthday AS 'birthdate'

,'patient' AS 'table'

FROM

patient pt

WHERE

pt.birthday IS NULL ;

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

ตัวอย่าง


 

cid

pname

person_name

nationality

birthdate

table

88888888888888

ด.ช.

นัท xxx

99

person

88888888888888

ด.ญ.

กิ่งกาญจน์ xxx

99

person

88888888888888

นาย

ซ้งเทียง xxx

99

patient

88888888888888

นาย

ขจร xxx

99

patient

88888888888888

น.ส.

จรรย์ญา xxx

99

patient

/*MSTATUS สถานะสมรส 1 = โสด, 2 = คู่, 3 = ม่าย, 4 = หย่า, 5 = แยก, 6 = สมณะ, 9=ไม่ทราบ */

select p.cid

,p.pname

,concat(p.fname,space(1),p.lname)as 'person_name'

,p.marrystatus,'person'as'table'

from patient p

where p.marrystatus not in ('1', '2','3','4','5','6','9')

union

select pt.cid

,pt.pname

,concat(pt.fname,space(1),pt.lname)as 'person_name'

,pt.marrystatus,'patient'as'table'

from patient pt

where pt.marrystatus not in ('1', '2','3','4','5','6','9');

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

ตัวอย่าง

cid pname person_name marrystatus table
88888888888888 น.ส. บุญช่วย xxx 0 person
88888888888888 ด.ญ. อารีรัตน์ xxx 0 person
88888888888888 น.ส. ไพลิน xxx 0 patient
88888888888888 นาย รังสรรค์ xxx 0 patient
88888888888888 ด.ญ. ณิชากร xxx 0 patient


update new nationality


 

 

/*แก้ไข ข้อมูลเก่าทั่งระบบเป็น รหัสใหม่ LABOR รหัสความเป็นคนต่างด้ามี3 ระหัส ก่อนใช้รหัสใหม่ */

UPDATE person

SET person_labor_type_id = 11

WHERE person_labor_type_id = 0;

UPDATE person

SET person_labor_type_id = 12

WHERE person_labor_type_id = 1;

UPDATE person

SET person_labor_type_id = 22

WHERE person_labor_type_id = 2;

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

update person labor_type


/*เปลี่ยน labor_type_id ผิดพลาดกรณีเป็นคนไทย*/

update person as p

set person_labor_type_id = null

WHERE p.nationality = '99'

and p.person_labor_type_id is not null

or substr(p.cid,1,2)<>'00'

/*สัญชาติ ผิด nationality */

SELECT p.cid,p.pname,concat(p.fname,space(1),p.lname)as person_name,p.nationality

,'person'as'table'

from person p

where nationality ='99'and (left(fname,1) BETWEEN 'a'and 'z'

or p.lname like '%พม่า%')

union

SELECT pt.cid,pt.pname,concat(pt.fname,space(1),pt.lname)as person_name,pt.nationality ,'patient'as'table'

from patient pt

where pt.nationality

='99'and (left(pt.fname,1) BETWEEN 'a'and 'z'

or pt.lname like '%พม่า%');

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

/*! set names utf8*/;

/*สัญชาติ_nationality=99ผิด_ตามcid

-- 1. ระเบียบสำานักทะเบียนกลางว่าด้วยการจัดทำาทะเบียนราษฎร ..2535

*/

SELECT p.cid,left(p.cid,1)as'1digit',substring(p.cid,6,2)as '6-7digit',p.pname,concat(p.fname,space(1),p.lname)as person_name,p.nationality

,'patient'as'table'

from patient p

where

# กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 6

(left(p.cid,1)='6' and

substring(p.cid,6,2)in('00','50','51','52','53','54','55','56','57','58','59','60','61','62',

'63','64','65','66','67','68','71','72')

#2. กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 8

or left(p.cid,1)='8'

and substring(p.cid,6,2)in('00','73','76','77','78','79','81','82','84','86','86','87',

'88')

#3. กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 0

or left(p.cid,1)='0' and substring(p.cid,6,2)in('00','89'))

and nationality ='99'

union

SELECT p.cid,left(p.cid,1)as'1digit',substring(p.cid,6,2)as '6-7digit',p.pname,concat(p.fname,space(1),p.lname)as person_name,p.nationality

,'person'as'table'

from person p

where

# กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 6

(left(p.cid,1)='6' and

substring(p.cid,6,2)in('00','50','51','52','53','54','55','56','57','58','59','60','61','62',

'63','64','65','66','67','68','71','72')

#2. กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 8

or left(p.cid,1)='8'

and substring(p.cid,6,2)in('00','73','76','77','78','79','81','82','84','86','86','87',

'88')

#3. กลุ่มบุคคลที่มีเลขประจำาตัวประชาชน 0

or left(p.cid,1)='0' and substring(p.cid,6,2)in('00','89'))

and nationality ='99'

#---------------

 

ตัวอย่าง

cid 1digit 6-7digit pname person_name nationality table
8630784042543 8 84 น.ส. ปาริฉัตร xxx 99 patient
8630784042675 8 84 น.ส. อรวรรณ xxx 99 patient
671189004105 0 89 ด.ญ. สว่าง xxxx 99 patient
8710884002348 8 84 น.ส. ก้อย xxxx 99 patient
6015500782991 6 0 MR. MAUNG KYAW - 99 patient

/*ก่อนเปลี่ยนรหัสให้ตรงมาตรฐานต้องทำการ Update รหัสเก่าเสียก่อน ซึ่งถูกบันทึกไว้ในแฟ้ม patient และ person อาจต้องทำหลายครังจนกว่าจะหมด*/

set @newreligion = '05',@oldreligion = '02';/*เปลี่ยนตามต้องการ*/

update person p

set p.religion = @newreligion

where p.religion = @oldreligion;

update patient pt

set pt.religion = @newreligion

where pt.religion = @oldreligion;

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

 


/*RELIGION ศาสนา รหัสมาตรฐานส านักนโยบายและยุทธศาสตร์  */

DROPTABLEIFEXISTSreligion;

CREATETABLE `religion` (

`religion` char(2)NOTNULLDEFAULT'',

`name` varchar(40)DEFAULTNULL,

`nhso_code` varchar(10)DEFAULTNULL,

`hos_guid` varchar(38)DEFAULTNULL,

PRIMARYKEY(`religion`),

KEY `ix_hos_guid` (`hos_guid`)

)ENGINE=InnoDBDEFAULTCHARSET=tis620;

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('00','อศาสนา/ไม่นับถือศาสนา','00','{A21F4AA0-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('01','พุทธ','01','{A21F4D2A-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('02','อิสลาม','02','{A21F4F64-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('03','คริสต์','03','{A21F4E4C-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('04','พราหมณ์-ฮินดู','04','{A21F5072-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('05','ศาสนาซิกข์','05','{A21F518A-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('06','อศาสนา/ไม่นับถือศาสนา','06','{A21F5298-F61D-11DE-BFF4-00215E472B30}');

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('07','ศาสนาซิกข์','07',NULL);

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('08','ศาสนาโซโรอัสเตอร์','08',NULL);

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('09','ศาสนาบาไฮ','09',NULL);

INSERTINTO `religion` (`religion`, `name`, `nhso_code`, `hos_guid`)VALUES('99',ไม่ระบุ','99',NULL);

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

/*FSTATUS สถานะในครอบครัว 1 = เจ้าบ้าน , 2 = ผู้อาศัย */

SELECT

p.cid

,p.pname

,CONCAT(p.fname, SPACE(1),p.lname) AS person_name

,p.house_regist_type_id as typepe_area

,p.person_house_position_id AS FSTATUS

FROM

person AS p

WHERE

p.person_house_position_id NOT IN (1,2)

and p.house_regist_type_id in (1,2,3)

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


/*VSTATUS สถานะในชุมชน */

/*mapping person_duty เพื่อ กำหนดรหัส สถานะในชุมชน*/

truncate person_duty;

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (1, 'กำนัน', '1', '{52B02BCC-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (2, 'ผู้ใหญ่บ้าน', '1', '{52B02FA8-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (3, 'แพทย์ประจำตำบล', '3', '{52B0324D-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (4, 'สารวัตรกำนัน', '5', '{52B034C5-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (5, 'ผู้ช่วยผู้ใหญ่บ้าน', '5', '{52B0371D-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (6, 'อสม.', '2', '{52B03978-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (7, 'กสค.', '5', '{52B03BD0-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (8, 'หมอนวดโบราณ', '5', '{52B03E3B-CC8B-11E0-95DF-56C4D5DED9A4}');

INSERT INTO `person_duty` (`person_duty_id`, `person_duty_name`, `hcis_code`, `hos_guid`)

VALUES (9, 'หมอพื้นบ้าน', '5', '{52B04099-CC8B-11E0-95DF-56C4D5DED9A4}');

select * from person_duty;

 

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

 ตัวอย่าง

person_duty_id person_duty_name hcis_code hos_guid
1 กำนัน 1 {52B02BCC-CC8B-11E0-95DF-56C4D5DED9A4}
2 ผู้ใหญ่บ้าน 1 {52B02FA8-CC8B-11E0-95DF-56C4D5DED9A4}
3 แพทย์ประจำตำบล 3 {52B0324D-CC8B-11E0-95DF-56C4D5DED9A4}
4 สารวัตรกำนัน 5 {52B034C5-CC8B-11E0-95DF-56C4D5DED9A4}
5 ผู้ช่วยผู้ใหญ่บ้าน 5 {52B0371D-CC8B-11E0-95DF-56C4D5DED9A4}
6 อสม. 2 {52B03978-CC8B-11E0-95DF-56C4D5DED9A4}
7 กสค. 5 {52B03BD0-CC8B-11E0-95DF-56C4D5DED9A4}
8 หมอนวดโบราณ 5 {52B03E3B-CC8B-11E0-95DF-56C4D5DED9A4}
9 หมอพื้นบ้าน 5 {52B04099-CC8B-11E0-95DF-56C4D5DED9A4}

TYPEAREA สถานะบุคคล 

1 = มีชื่ออยู่ตามทะเบียนบ้านในเขตรับผิดชอบและอยู่จริง
2 = มีชื่ออยู่ตามทะเบีบนบ้านในเขตรับผิดชอบแต่ตัวไม่อยู่จริง
3 = มาอาศัยอยู่ในเขตรับผิดชอบ(ตามทะเบียนบ้านในเขตรับผิดชอบ)แต่ทะเบียน
      บ้านอยู่นอกเขตรับผิดชอบ
4 = ที่อาศัยอยู่นอกเขตรับผิดชอบและทะเบียนบ้านไม่อยู่ในเขตรับผิดชอบ เข้ามารับ
      บริการหรือเคยอยู่ในเขตรับผิดชอบ
5 = มาอาศัยในเขตรับผิดชอบแต่ไม่ได้อยู่ตามทะเบียนบ้านในเขตรับผิดชอบ เช่น คน
เร่ร่อน ไม่มีที่พักอาศัย เป็นต้น

/*TYPEAREA สถานะบุคคลผิดปกติ */

SELECT

p.cid,p.pname,CONCAT(p.fname,SPACE(1),p.lname)AS PERSON_NAME,p.house_regist_type_id as 'type_area'

,'person'as 'table'

FROM

person AS p

WHERE

p.house_regist_type_id is null

OR (p.house_regist_type_id NOT IN ('1','2','3','4','5')

or p.house_regist_type_id ='')

UNION

SELECT

pT.cid,pt.pname, CONCAT(pT.fname, SPACE(1),pT.lname) AS PERSON_NAME,pt.type_area,'patient'as 'table'

FROM

patient pt

where

pt.type_area is null

or (pt.type_area not in(1,2,3,4,5)

or pt.type_area = '');

 ตัวอย่าง

cid

pname

PERSON_NAME

type_area

table

8888888888888

น.ส.

นุชจรี xxx

person

8888888888888

น.ส.

สมจิตร์ xxx

person

8888888888888

นาย

สันติ xxx

patient

8888888888888

นาง

ถวิล xxx

patient

8888888888888

น.ส.

มณฑิพากร xxx

patient


 

/*ส่งperson ไม่ออก 50 files */

update village

SET village_moo = '0'

WHERE village_moo ='00';

SELECT v.village_id,v.address_id

,v.village_moo,v.village_name

,v.latitude,v.longitude

FROM village v;

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

 ตัวอย่าง

 

village_id

address_id

village_moo

village_name

latitude

longitude

4

720803

04

บ้านทึง

14.7877459972577

100.084419250488

5

720803

05

สะพานขาว

14.7743949237351

100.089869499207

6

720803

06

เศรษฐกร

14.7607110373942

100.090234279633

7

0

0

นอกเขตรับผิดชอบ

9

720803

77

บุคคลในบ้านกลาง

 


/*person ที่ไม่เชื่อมโยงกับแฟ้ม Home*/

SELECT

p.pname,

CONCAT(p.fname, SPACE(1), p.lname) AS person_name,

p.house_id as 'รหัสที่บันทึก'

,house.house_id

FROM

person p

LEFT JOIN

house ON house.house_id = p.house_id

WHERE

house.house_id IS NULL

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

ตัวอย่าง

pname person_name รหัสที่บันทึก house_id
นาง วรรณา xxx 4382
นาย บุญเสริม xxx 4382
นาง ปนัดดา xxx 4381
นาย พงศกร xxx 4382
นาย นิติกร xxx 4382

/* เด็กที่ไม่เชื่อมโยง มารดา */

SELECT

p.cid,

p.pname, CONCAT(p.fname, SPACE(1),p.lname) AS person_name

, TIMESTAMPDIFF(YEAR,p.birthdate, CURRENT_DATE()) AS 'อายุ ปี',

pd.person_discharge_name,

p.mother_cid

FROM person p

INNER JOIN person_discharge AS pd ON pd.person_discharge_id = p.person_discharge_id

WHERE p.person_discharge_id NOT IN (1,2,3)

AND TIMESTAMPDIFF(YEAR,p.birthdate, CURRENT_DATE()) BETWEEN 0 AND 5 /*อายุ*/

AND p.mother_cid IS NULL

ORDER BY TIMESTAMPDIFF(YEAR,p.birthdate, CURRENT_DATE())

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

ตัวอย่าง

cid pname person_name อายุ ปี person_discharge_name mother_cid
8888888888888 ด.ญ. กัญญพัชร xxx 2 ยังอาศัยอยู่
8888888888888 ด.ช. พัทธนันท์ xxx 2 ยังอาศัยอยู่
8888888888888 นาง พัทธ์ธีรา xxx 2 ยังอาศัยอยู่
8888888888888 ด.ช. พุฒกานฑ์ xxx 2 ยังอาศัยอยู่
8888888888888 ด.ช. ธนวรรธน์ xxx 2 ยังอาศัยอยู่

/*ประชากรที่ไม่เชื่อมโยงกับบ้าน */

SELECT

p.cid, p.pname, CONCAT(p.fname, SPACE(1),p.lname) AS PERSON_NAME,

p.sex, h.address, p.house_id AS id_ในperson,h.house_id,P.house_regist_type_id AS type_area

FROM

person AS p

LEFT OUTER

JOIN

house AS h ON h.house_id = p.house_id

LEFT OUTER

JOIN

village AS v ON v.village_id = h.village_id

WHERE

h.house_subtype_id IS NULL OR v.village_id IS NULL

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

ตัวอย่าง

cid pname PERSON_NAME sex address id_ในperson house_id type_area
8888888888888 นาง ปนัดดา xxx 2 4381 1
8888888888888 นาย พงศกร xxx 1 4382 3
8888888888888 นาย นิติกร xxx 1 4382 2
8888888888888 นาย ถวิล xxx 1 4383 1
8888888888888 ด.ญ. วิภาพร xxx 2 4474


/*แก้ไข สถานะการจำหน่าย กลับเป็น ยังอยู่โดยใช้คำสั่ง*/

update person as p

set p.person_discharge_id = '9',p.last_update = now()

where p.person_discharge_id ='2'

AND (p.discharge_date IS NULL

OR p.discharge_date = '');

-- เรียกดูซ้ำ

SELECT p.cid,p.pname

, CONCAT(p.fname, SPACE(1),p.lname) AS 'person_name'

,p.person_discharge_id

,p.discharge_date

,p.house_regist_type_id AS 'type_area'

FROM person p

WHERE p.person_discharge_id ='2' AND (p.discharge_date IS NULL

OR p.discharge_date = '')

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

/*ตรวจสอบ cid ด้วย mod 11 แล้วผิดพลาด*/

SELECT

concat(p.fname,space(1),p.lname)as person_name,

p.cid ,

if(11-(mod((SUBSTRING(p.cid, 1, 1) * 13)+

(SUBSTRING(p.cid, 2, 1) * 12)+

(     SUBSTRING(p.cid, 3, 1) * 11)+

(SUBSTRING(p.cid, 4, 1) * 10)+

(SUBSTRING(p.cid, 5, 1) * 9)+

(SUBSTRING(p.cid, 6, 1) * 8)+

(SUBSTRING(p.cid, 7, 1) * 7)+

(SUBSTRING(p.cid, 8, 1) * 6)+

(SUBSTRING(p.cid, 9, 1) * 5)+

(SUBSTRING(p.cid, 10, 1) * 4)+

(SUBSTRING(p.cid, 11, 1) * 3)+

(SUBSTRING(p.cid, 12, 1) * 2)+

(SUBSTRING(p.cid, 13, 1) * 1),11))=10 or 11-(mod((SUBSTRING(p.cid, 1, 1) * 13)+

(SUBSTRING(p.cid, 2, 1) * 12)+

(     SUBSTRING(p.cid, 3, 1) * 11)+

(SUBSTRING(p.cid, 4, 1) * 10)+

(SUBSTRING(p.cid, 5, 1) * 9)+

(SUBSTRING(p.cid, 6, 1) * 8)+

(SUBSTRING(p.cid, 7, 1) * 7)+

(SUBSTRING(p.cid, 8, 1) * 6)+

(SUBSTRING(p.cid, 9, 1) * 5)+

(SUBSTRING(p.cid, 10, 1) * 4)+

(SUBSTRING(p.cid, 11, 1) * 3)+

(SUBSTRING(p.cid, 12, 1) * 2)+

(SUBSTRING(p.cid, 13, 1) * 1),11)) =11,'ถูก','ผิด') as 'mod-11cid'

FROM

person p

where if(11-(mod((SUBSTRING(p.cid, 1, 1) * 13)+

(SUBSTRING(p.cid, 2, 1) * 12)+

(     SUBSTRING(p.cid, 3, 1) * 11)+

(SUBSTRING(p.cid, 4, 1) * 10)+

(SUBSTRING(p.cid, 5, 1) * 9)+

(SUBSTRING(p.cid, 6, 1) * 8)+

(SUBSTRING(p.cid, 7, 1) * 7)+

(SUBSTRING(p.cid, 8, 1) * 6)+

(SUBSTRING(p.cid, 9, 1) * 5)+

(SUBSTRING(p.cid, 10, 1) * 4)+

(SUBSTRING(p.cid, 11, 1) * 3)+

(SUBSTRING(p.cid, 12, 1) * 2)+

(SUBSTRING(p.cid, 13, 1) * 1),11))=10 or 11-(mod((SUBSTRING(p.cid, 1, 1) * 13)+

(SUBSTRING(p.cid, 2, 1) * 12)+

(     SUBSTRING(p.cid, 3, 1) * 11)+

(SUBSTRING(p.cid, 4, 1) * 10)+

(SUBSTRING(p.cid, 5, 1) * 9)+

(SUBSTRING(p.cid, 6, 1) * 8)+

(SUBSTRING(p.cid, 7, 1) * 7)+

(SUBSTRING(p.cid, 8, 1) * 6)+

(SUBSTRING(p.cid, 9, 1) * 5)+

(SUBSTRING(p.cid, 10, 1) * 4)+

(SUBSTRING(p.cid, 11, 1) * 3)+

(SUBSTRING(p.cid, 12, 1) * 2)+

(SUBSTRING(p.cid, 13, 1) * 1),11)) =11,'true','false') ='false'

   #---------------------

ตัวอย่าง

person_name cid mod-11cid
เต๊กยิว xxx 0000000086966 ผิด
อองกา xxx 0000000087192 ผิด
มู xxx 0000000087222 ผิด
ดา xxx 0000000088353 ผิด
สมชาย xxx 1720500008807 ผิด

/*person_disharge_as "สาบสูญ"*/

select p.person_id,p.cid,concat(p.fname,space(1),p.lname) as 'person_name',TIMESTAMPDIFF(year,p.birthdate,p.last_update)AS'age_y',p.house_regist_type_id as'Type_area',p.person_discharge_id,di.person_discharge_name

from person AS p

inner join person_discharge as di on di.person_discharge_id = p.person_discharge_id

where p.person_discharge_id ='3'

#--------------------

ตัวอย่าง

person_id cid person_name age_y Type_area person_discharge_id person_discharge_name
7819 8888888888888 เฉลิมวุฒิ XXX 28 1 3 สาบสูญ
12948 8888888888888 เอ XXX 33 4 3 สาบสูญ
55305 8888888888888 เจนนิสา XXX 17 4 3 สาบสูญ
55368 8888888888888 เมธาพร XXX 0 4 3 สาบสูญ
56932 8888888888888 สุกานดา XXX 22 4 3 สาบสูญ