เขียนScpt ให้ประมวลผลเร็ว

ยกตัวอย่างการเขียนตรวจสอบกฏ B1 ของ สนย. (ตรวจสอบ ICD10)
scpt ตามนี้
.............................................................
SET @SP1 = '04506'; # รหัสสถานบริการ
SET @SP2 = '2016'; # ปี ค.ศ
SET @SP3 = '10'; # เดือน

SELECT t.pid,t.birth,t.visitdate,t.prename,
t.fname,t.lname,t.diagcode,s.diagcode
 mustz111213,s.pcucode,s.visitno,'',''
FROM (SELECT v.pcucode,v.visitno,
SUBSTRING_INDEX(GROUP_CONCAT(diagcode ORDER BY diagcode DESC),
',',9)diagcode FROM visit v JOIN (SELECT pcucode,visitno,diagcode FROM visitdiag
where UCase(Left(diagcode,1))='z'AND UCase(LEFT(diagcode,3)) NOT IN('z11','z12','z13'))
AS s1 ON s1.pcucode=v.pcucode AND s1.visitno=v.visitno
WHERE YEAR(visitdate)= @SP2 AND MONTH(v.visitdate)=@SP3
GROUP BY v.pcucode,v.visitno ORDER BY v.pcucode,v.visitno)AS s
JOIN(SELECT v.pcucode,v.visitno,v.pid,p.birth,v.visitdate,
IFNULL(titlename,'..')prename,fname,lname,diagcode from visit v
JOIN(SELECT pcucode,visitno,diagcode FROM visitdiag 
WHERE UCASE(LEFT(diagcode,1))<>'z' )AS t1 ON t1.pcucode=v.pcucode 
AND t1.visitno=v.visitno JOIN person p ON v.pcucodeperson=p.pcucodeperson
AND v.pid=p.pid LEFT JOIN ctitle on prename=titlecode
WHERE YEAR(v.visitdate)= @SP2 AND MONTH(v.visitdate)=@SP3
GROUP BY v.pcucode,v.visitno
ORDER BY v.pcucode,v.visitno)AS t ON s.pcucode=t.pcucode AND
s.visitno=t.visitno WHERE s.pcucode= @SP1 ORDER BY t.visitdate DESC;
..............................................................
ตามscpt ด้านบน สามารถแยกได้ 4 ส่วนคือ
1.ส่วนของตัวแปร ที่เรากำหนดว่าจะใช้อะไรแทนค่า (ทำให้สะดวก..ไม่ต้องไปค้นหาในscpt ทั้งหมด)
คือ   1.ตัวแปร 
        2.แทนค่าตัวแปร
        3.คำอธิบาย ทำไว้กันลืม

2.scpt ชุดที่ 1 คือส่วนที่เราต้องการแสดงผลข้อมูล  (หลังการรัน scpt)
ส่วน s หรือ t  คือ ตัวแทนชุดข้อมูลที่เรากำหนดขึ้นจ้า 

3.ชุดข้อมูล S ตามนี้
ซึงจะมีตารางที่เกี่ยวข้อง 2 ตารางคือ 
1.ตาราง visit .หรือ v 
2.ตาราง visitdiag  หรือตารางให้รหัสวินิจฉัยโรค ในการรับบริการครั้งนั้นๆ

4.ชุดข้อมูล T ตามนี้
ซึ่งตารางที่เกี่ยวข้อง คือ
1.ตาราง Visit
2.ตาราง visitdiag
3.ตาราง person (ข้อมูลบุคคล)
4.ตาราง ctitle (รหัสคำนำหน้า)

5.นำชุดข้อมูล S กับชุดข้อมูล T มาเชื่อมกัน ด้วยฟิลล์ pcucode (รหัสสถานบริการ) และ ฟิลล์ visitno (เลขลำดับรับบริการในครั้งนั้นๆ หรือ SEQนั่นแหละจ้า)

6.สรุป การเขียนScript แบบเชื่อมต่อหลายเงื่อนไข ดังนี้
 1.เขียนชุดข้อมูล S ก่อนและตามด้วยชุดข้อมูล T 
 2.จากนั้นนำมาเชื่อมกัน ด้วยfield ที่ ตรงกัน ส่วนมากใช้ รหัสสถานบริการ (pcucode)และเลขรับบริการ(visitnoหรือseq)
 3.เขียนชุดข้อมูล ส่วนที่ต้องการแสดงผลไว้ด้านบนรองลงมาจากส่วนตัวแปล
 4.เขียนส่วนตัวแปล เพื่อให้ผู้ใช้ได้เติม(fill) ตามเงื่อนไขที่ต้องการ ไว้บนสุด

7.ข้อดีข้อเสียของการเขียน Scprit แบบนี้คือ
 7.1ข้อดี.. จะทำให้ประมวลผลได้รวดเร็วยิ่งขึ้น คือแต่ละชุดข้อมูลจะกำหนดเงื่อนไขชัดเจนและประมวลผลไปพร้อมๆกัน จึงประหยัดเวลา
 7.2 ข้อเสีย..อาจทำให้การกลับมาแก้ไขscpt เป็นเรื่องที่ยุ่งยาก เพราะเงื่อนไขสลับซับซ้อน 

..............................@@ สติเกิดสมาธิ<<>>สมาธิเกิดปัญญา@@......................



ไม่มีความคิดเห็น:

https://www.blogs

 kllgnsgkj[jtlm'oahd bfldkb'pdojgaojp mfigjdo;sjgaij misjgo;sjagijwo;