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 เป็นเรื่องที่ยุ่งยาก เพราะเงื่อนไขสลับซับซ้อน
..............................@@ สติเกิดสมาธิ<<>>สมาธิเกิดปัญญา@@......................
ไม่มีความคิดเห็น:
แสดงความคิดเห็น