ผู้เขียน หัวข้อ: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ  (อ่าน 5208 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
เรื่องมีอยู่ว่าที่โรงพยาบาลที่ผมทำงาน มีการโอนข้อมูลจากโปรแกรมอื่นมายัง hosxp ตอนขึ้นระบบ ทำให้ข้อมูลบางฟิวด์ไม่ถูกต้อง เช่น fathername โดยปกติใน hosxp จะมีเฉพาะชื่ออย่างเดียวแต่ตอนนี้จะอยู่ในรูปแบบ (ชื่อ  นามสกุล ) จึงอยากขอคำแนะนำจากอาจารย์ทั้งหลายเพื่อเป็นแนวทางในการแก้ไขให้ถูกต้องครับ  จะเป็นตามรูปอ่ะครับ  ตอนนี้ผมใช้วิธีแบบอนุบาลคือเชื่อมโยงกับ odbc แล้วนั่งแก้ทีละคนอยู่ครับ  :)  :)  :)
« แก้ไขครั้งสุดท้าย: ธันวาคม 09, 2010, 12:00:51 PM โดย Oct. Man »
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...

ออฟไลน์ เกื้อกูล ครับ..

  • Hero Member
  • *****
  • กระทู้: 12,611
  • Respect: +169
    • ดูรายละเอียด
    • โรงพยาบาลปากท่อ
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #1 เมื่อ: ธันวาคม 09, 2010, 12:39:18 PM »
0
update query  จากตารางอ้างอิงที่เชื่อถือได้ไปยังตาราง person ในfield father  & mother
Implement  HOSxP  Start 2548 ---> NOW!
Station : 140 Client   V.3 Version  3.67.7.8
Server  : CENTOS 7 +MySQL maria 10.x.x

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #2 เมื่อ: ธันวาคม 09, 2010, 16:03:23 PM »
0
มันไม่มีนะซิครับ ตารางที่จะอ้างอิงและเชื่อถือได้ เพราะว่าถ้าใน Patient ผิดใน Person ก็ไม่น่าจะถูกครับ :)
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...

ออฟไลน์ d^_^b►►ทิว

  • Sr. Member
  • ****
  • กระทู้: 315
  • หากินกับสายแลน สไปเดอร์แมน แดนอิสาน
  • Respect: 0
    • ดูรายละเอียด
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #3 เมื่อ: ธันวาคม 09, 2010, 17:23:22 PM »
0
ดึงข้อมูลออกมาจาก fathername เก็บค่าไว้ในตัวแปร จากนั้นแยกชื่อกับนามสกุลออกจากกัน ไปเก็บไว้ในตัวแปรอีก 2 ตัวที่เตรียมไว้ โดยใช้ช่องว่างระหว่างชื่อกับนามสกุลเป็นตัวแยกแยะ ซึ่งก็จะทำให้ได้ข้อมูลออกมาแล้ว 2 ตัวแปรเสร็จแล้วก็เอาชื่อไป update ให้ fathername และเอานามสกุลที่ได้ไป update ให้ fatherlname ทำแบบนี้ทีละreccord ครับ ใช้สคริป pascal ทำน่ะครับ
"ไม่ได้เก่งเกินใคร แค่ทำได้ในสิ่งที่เรียนมา"
ทิวธวัชร  สุขมา  087-2337003
Server :IBM Ram 4 GB HDD 145 GB Mysql 5.1.39 Linux CentOs
Slave : Xeon 3.0 Ram 2 G HDD 120 GB MySQL 5.0.41 Linux CentOs
โรงพยาบาลโพนพิสัย จังหวัดหนองคาย เริ่มระบบ 26 พฤศภาคม 2550

ออฟไลน์ udomchok

  • Hero Member
  • *****
  • กระทู้: 8,358
  • Respect: +589
    • ดูรายละเอียด
    • ร.พ.สมเด็จพระสังฆราช องค์ที่ 17
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #4 เมื่อ: ธันวาคม 10, 2010, 09:25:53 AM »
0
ลองทดสอบก่อนนะครับ ผมยังไมม่ได้ทดสอบ เขียนสดใน notepad
update patient
set fathername = left(fathername,instr(fathername," ")),
fatherlname = right(fathername,length(fathername)-instr(fathername," ")+1)
หรือ
update patient
set fathername = left(fathername,instr(fathername," ")),
fatherlname = substr(fathername,instr(fathername," ")+1)
ทำด้วยหัวใจร.พ.สมเด็จพระสังฆราช องค์ที่ 17 อ.สองพี่น้อง จ.สุพรรณบุรี
อบรมโดย BMS Team เมื่อ พ.ย. 49 ขึ้นระบบห้องบัตรเมื่อ X'Mas 2007
2008 : X-Ray กายภาพบำบัด แพทย์แผนไทย กิจกรรมบำบัด OPD ตา
2009 : ทันตกรรม ห้องตรวจตา OPD (พยาบาลและห้องตรวจแพทย์บางห้อง)

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #5 เมื่อ: ธันวาคม 13, 2010, 09:46:51 AM »
0
ขอบคุณครับ เดี๋ยวลองดูครับ  น่าจะพอดัดแปลงมาใช้ได้ครับ แต่ข้อมูลมันไม่เหมือนกันทั้งหมดนะซิครับ บางส่วนก็ถูกอยู่แล้ว :)  :)  :)
« แก้ไขครั้งสุดท้าย: ธันวาคม 13, 2010, 11:27:44 AM โดย Oct. Man »
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #6 เมื่อ: ธันวาคม 17, 2010, 15:48:06 PM »
0
ถ้าจะตัดออกอ่ะครับ สมมุติว่าผมจะลบข้อมูลในส่วนที่ 1 และส่วนที่ 2 ออกจะใช้คำสั่งอย่างไรครับ  :)
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...

ออฟไลน์ woravet

  • Sr. Member
  • ****
  • กระทู้: 414
  • Respect: +12
    • ดูรายละเอียด
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #7 เมื่อ: ธันวาคม 17, 2010, 17:08:52 PM »
0
ลอง select hn,fathername,fatherlname
,left(fathername,instr(fathername,' ')) 'test1'
,substr(fathername,instr(fathername,' ')+1) 'test2'
from patient
where locate(' ',trim(fathername))>1
limit 1000
ดูก่อน แล้วค่อย Update
1.update patient set fatherlname=fathername where where locate(' ',trim(fathername))>1
2.update patient set fatherlname=left(fathername,instr(fathername,' ')),fatherlname=substr(fatherlname,instr(fatherlname,' ')+1) where where locate(' ',trim(fathername))>1
ระมัดระวังหน่อยนะคับ
รพ.บึงสามัคคี จ.กำแพงเพชร
*********************
อ.สุชัยและคณะ ขึ้นระบบ 29 ตค.49(Linux+Fedara 5)
*********************
ปัจจุบัน
HOSxP version 3.53.4.27
Server:Windows XP SP2,MySQL 5
Client ประมาณ 15 เครื่อง

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #8 เมื่อ: ธันวาคม 18, 2010, 09:15:46 AM »
0
ลอง select hn,fathername,fatherlname
,left(fathername,instr(fathername,' ')) 'test1'
,substr(fathername,instr(fathername,' ')+1) 'test2'
from patient
where locate(' ',trim(fathername))>1
limit 1000
ดูก่อน แล้วค่อย Update
1.update patient set fatherlname=fathername where where locate(' ',trim(fathername))>1
2.update patient set fatherlname=left(fathername,instr(fathername,' ')),fatherlname=substr(fatherlname,instr(fatherlname,' ')+1) where where locate(' ',trim(fathername))>1
ระมัดระวังหน่อยนะคับ
ขอบคุณมากครับ ลองทำดูแล้วครับตอน select ดูเนี่ย ok นะครับ แต่ตอน update เนี่ยยังไม่ค่อยถูกจะลองเช็คดูคำสั่งอีกทีนึงครับ :)
« แก้ไขครั้งสุดท้าย: ธันวาคม 18, 2010, 10:00:05 AM โดย Oct. Man »
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...

ออฟไลน์ Oct. Man

  • Sr. Member
  • ****
  • กระทู้: 438
  • > ชีวิตคือการต่อสู้ ทั้งที่รู้ว่าไม่แพ้หรือชนะ <
  • Respect: 0
    • ดูรายละเอียด
    • โรงพยาบาลบางขัน
Re: ขอแนวทางการแก้ไขข้อมูลในตาราง patient หน่อยครับ
« ตอบกลับ #9 เมื่อ: ธันวาคม 18, 2010, 10:09:39 AM »
0
คำสั่งมันผิดอยู่นิดนึงครับ เผื่อท่านอื่นจะเอาไปใช้  :)
ตามนี้ครับ
select hn,fathername,fatherlname
,left(fathername,instr(fathername,' ')) 'test1'
,substr(fathername,instr(fathername,' ')+1) 'test2'
from patient
where locate(' ',trim(fathername))>1
limit 1000

select hn,mathername,motherlname
,left(mathername,instr(mathername,' ')) 'test1'
,substr(mathername,instr(mathername,' ')+1) 'test2'
from patient
where locate(' ',trim(mathername))>1
limit 1000

.........
1.update patient set fatherlname=fathername where locate(' ',trim(fathername))>1
2.update patient set fatherlname=left(fathername,instr(fathername,' ')),fatherlname=substr(fatherlname,instr(fatherlname,' ')+1) where locate(' ',trim(fathername))>1

1.update patient set motherlname=mathername where locate(' ',trim(mathername))>1
2.update patient set motherlname=left(mathername,instr(mathername,' ')),matherlname=substr(matherlname,instr(matherlname,' ')+1) where locate(' ',trim(mathername))>1
« แก้ไขครั้งสุดท้าย: ธันวาคม 18, 2010, 10:13:26 AM โดย Oct. Man »
suthep sakunchotiphong<>bangkhan hospital <> Nakhonsitamarat email :bangkhun@hotmail.com,<>Tel. 075371081
<Master server>CentOS 7.0 Mysql 5.7.16-10 Ram 32.0 GB database 3.61.10.31 update ล่าสุด 13/12/2561
<Slave server >CentOS 7.10 Mysql 5.7.16-10 Ram 16.0 GB database 3.61.10.31 ...