





(ตัวอย่าง)
การบันทึกตามนี้จ้า
1. เข้า ADM-MDA เพื่อไปเพิ่ม Lot vaccine
getAgeYearNum(p.birth,CURDATE()) AS 'อายุปี',vpi.dateepi,h.hno AS 'เลขที่',vl.villno AS 'หมู่ที่',vpi.vaccinecode,vpi.lotno,vpi.datevacineexpire,cdg.files18epi AS 'รหัสส่งออก43 แฟ้ม'
FROM visitepi vpi INNER JOIN cdrug cdg ON vpi.vaccinecode = cdg.drugcode
INNER JOIN person p ON vpi.pcucodeperson = p.pcucodeperson AND vpi.pid=p.pid
INNER JOIN ctitle ct ON p.prename = ct.titlecode
INNER JOIN house h ON p.pcucodeperson = h.pcucode AND p.hcode = h.hcode
INNER JOIN village vl ON h.pcucode = vl.pcucode AND vl.villcode = h.villcode
WHERE vpi.dateepi BETWEEN '2019-10-01'AND CURDATE()
AND cdg.files18epi = '815' ORDER BY vl.villcode,h.hno ;
CREATE TABLE flu20361 AS select vt.pid,vt.visitno,vt.visitdate,cdg.files18epi FROM visit vt
INNER JOIN visitepi vpi ON vt.visitno=vpi.visitno INNER JOIN cdrug cdg ON vpi.vaccinecode = cdg.drugcode
WHERE vpi.dateepi BETWEEN'2019-10-01'AND CURDATE() AND cdg.files18epi = '815';
SELECT p.pid,p.idcard,ct.titlename,p.prename,p.fname,p.lname,h.hno AS 'เลขที่',Right(h.villcode,2) AS 'หมู่ที่'
FROM person p INNER JOIN ctitle ct ON p.prename=ct.titlecode
INNER JOIN personchronic pc ON p.pid = pc.pid and p.pcucodeperson = pc.pcucodeperson
INNER JOIN house h ON p.pcucodeperson = h.pcucode AND p.hcode = h.hcode
WHERE p.pid NOT IN (select flu20361.pid FROM flu20361) GROUP BY p.pid;
SELECT v1.pcucode,p1.pid,v1.visitno,p1.titlename,p1.fname,p1.lname,p1.idcard,p1.age,v1.dateepi,p1.hno,p1.moo,v1.vaccinecode,v1.lotno,v1.datevacineexpire,v1.code FROM (SELECT p.pid,ct.titlename,p.fname,p.lname,p.idcard,getAgeYearNum(p.birth,CURDATE()) AS 'age',h.hno,RIGHT(vl.villcode,2) AS moo FROM person p INNER JOIN ctitle ct ON p.prename = ct.titlecode INNER JOIN house h ON p.pcucodeperson = h.pcucode AND p.hcode = h.hcode INNER JOIN village vl ON h.pcucode = vl.pcucode AND vl.villcode = h.villcode WHERE getAgeYearNum(p.birth,CURDATE() ) BETWEEN '60'AND '100' AND p.typelive IN ('1','3') AND p.dischargetype = '9') AS p1 LEFT JOIN (SELECT vpi.pcucode,vpi.pid,vpi.visitno,vpi.dateepi,vpi.vaccinecode,vpi.lotno,vpi.datevacineexpire,cdg.files18epi AS 'code' FROM visitepi vpi INNER JOIN cdrug cdg ON vpi.vaccinecode = cdg.drugcode WHERE vpi.dateepi BETWEEN '2021-04-01'AND CURDATE() AND cdg.files18epi = '815') AS v1 ON p1.pid = v1.pid
# WHERE v1.vaccinecode IS NULL # ยังไม่ฉีด
#WHERE v1.vaccinecode IS NOT NULL # ฉีดแล้ว
GROUP BY p1.pid ORDER BY p1.moo,p1.hno;
.........................................
หมายเหตุ : หากต้องการเฉพาะที่ยังไม่ฉีด ให้เอาเครื่องหมาย # ออกจาก หน้า WHERE v1.vaccinecode IS NULL # ยังไม่ฉีด (บรรทัดที่ 3 จากด้านล่าง)
เพิ่มเติม
การตรวจสอบวัน datevacineexpire เพี้ยน จาก ค.ศ. เป็น พ.ศ.
ใช้ scpt ตามนี้
.........................................................
select pcucodeperson,pid,vaccinecode,dateepi,datevacineexpire,
date_add(datevacineexpire, INTERVAL 543 YEAR) AS'dateที่น่าจะเป็น',lotno
from visitepi
WHERE YEAR(datevacineexpire) <= '1500'
#AND vaccinecode = 'FLU'
ORDER BY dateepi;
........................................................
(ตัวอย่าง)
หากมีรายชื่อโผล่มา และต้องการอัพคืน เป็น ค.ศ. ที่ถูกต้องเหมือนเดิม ให้ใช้ Scpt ตามนี้จ้า
.......................................................
UPDATE visitepi
SET datevacineexpire = date_add(datevacineexpire,INTERVAL 543 YEAR)
WHERE YEAR(datevacineexpire)<= '1500' AND datevacineexpire IS NOT NULL;
......................................................
หมายเหตุ : scpt นี้จะอัพเดด เฉพาะปีใน field :datevacineexpire ที่มีค่า <= '1500' (เดือน และวัน เหมือนเดิม)
"""""""""""""""""""""""""""""""""""
สาเหตุปัญหา :น่าจะมาจาก ฐาน MYSql เอง ส่วนวิธีแก้แบบถาวร คงต้องหาวิธีแก้กันต่อไปจ้า
ไม่มีความคิดเห็น:
แสดงความคิดเห็น