scpt นมแม่

1.scpt ตรวจสอบว่า ตั้งแต่ '2019-10-01' มีคนที่กินนมแม่อย่างเดียวทั้งครบไม่ครบ กี่คน (ให้ดูที่ช่อง นมแม่อย่างเดียว @ ช่องขวดนม)
......................
SET @datestart = '2019-10-01'; #วันที่เริ่มต้น
SET @dateend = '2020-09-30'; #วันที่สิ้นสุด

SELECT
visit.pcucode,visitnutrition.visitno,ctitle.titlename as 'นำหน้า',person.fname as 'ชื่อ',person.lname as 'สกุล',person.birth AS 'วดป.เกิด',getageymd(person.birth,visit.visitdate) AS 'อายุ ณ วันรับบริการ',
visit.visitdate as 'วันรับบริการ',visitnutrition.weight as 'น้ำหนัก',visitnutrition.tall  as 'ส่วนสูง',
visitnutrition.headcycle as 'รอบศีรษะ',(CASE WHEN visitnutrition.navel = '1' then 'สะอาด'
WHEN visitnutrition.navel = '2' then 'ไม่สะอาด'
ELSE '' END) AS 'ความสะอาดสะดือ'
,(CASE WHEN visitnutrition.food = '1' then 'นมแม่อย่างเดียว'
WHEN visitnutrition.food = '2' then 'นมแม่และน้ำ' WHEN visitnutrition.food = '3' then 'นมแม่และนมผสม' WHEN visitnutrition.food = '4' then 'นมแมผสมอย่างเดียว' ELSE '' END) AS 'นมแม่'
,(CASE WHEN visitnutrition.bottle = '1' then 'ใช้ขวดนม' WHEN visitnutrition.bottle = '2' then 'ไม่ใช้ขวดนม' ELSE '' END) AS 'ขวดนม' ,house.hno AS 'เลขที่'
,substr(house.villcode,7,2) AS 'หมู่'
FROM person INNER JOIN visit ON person.pcucodeperson = visit.pcucodeperson AND person.pid = visit.pid INNER JOIN visitnutrition ON visit.pcucode = visitnutrition.pcucode AND visit.visitno = visitnutrition.visitno INNER JOIN house ON person.pcucodeperson = house.pcucode AND person.hcode = house.hcode INNER JOIN ctitle ON  person.prename = ctitle.titlecode
WHERE visit.visitdate BETWEEN @datestart AND @dateend
AND getAgeMonth(person.birth,CURDATE()) <= 12 AND person.typelive in ('1','3') AND person.pid NOT in (SELECT persondeath.pid from persondeath) GROUP BY visit.visitno
ORDER BY person.pid,visit.visitno;
.......................
2.scpt อัพเดดนมแม่
..........................
UPDATE visitnutrition vn
INNER JOIN milkpid ON vn.visitno = milkpid.visitno
INNER JOIN visit vt ON vn.visitno = vt.visitno
SET vn.food = '1'
WHERE vt.visitdate BETWEEN '2019-10-01'AND CURDATE()
AND vn.visitno IN (SELECT milkpid.visitno FROM milkpid)
AND vn.food IS NULL;

2.scpt อัพเดดขวดนม (หากกินนมแม่อย่างเดียวก็ไม่ควรใช้ขวดนมจ้า)
UPDATE visitnutrition vn
INNER JOIN visit vt ON vn.visitno = vt.visitno
SET vn.bottle = '2'
WHERE vt.visitdate BETWEEN '2019-10-01'AND CURDATE()
AND vn.visitno IN (SELECT milkpid.visitno FROM milkpid)
AND vn.food = '1';
.........................
หมายเหตุ : กำหนดช่วงวันที่ได้ตามต้องการ ที่บรรทัด  BETWEEN '2019-10-01'AND CURDATE()
............................
3.หรือรันทีเดียวจบ แบบรวม scpt ตามนี้
.........................
CREATE OR REPLACE VIEW milkpid AS
SELECT visit.pcucode,visitnutrition.visitno,person.fname,person.lname,person.birth,
getageymd(person.birth,visit.visitdate) AS age,visit.visitdate,visitnutrition.weight,
(CASE WHEN visitnutrition.food = '1' then '1' WHEN visitnutrition.food = '2' then '2'
WHEN visitnutrition.food = '3' then '3' WHEN visitnutrition.food = '4' then '4' ELSE '' END) AS 'food' ,(CASE WHEN visitnutrition.bottle = '1' then '1' WHEN visitnutrition.bottle = '2' then '2' ELSE '' END) AS 'bottle' ,house.hno ,substr(house.villcode,7,2) AS 'mu'
FROM person INNER JOIN visit ON person.pcucodeperson = visit.pcucodeperson AND person.pid = visit.pid INNER JOIN visitnutrition ON visit.pcucode = visitnutrition.pcucode AND visit.visitno = visitnutrition.visitno INNER JOIN house ON person.pcucodeperson = house.pcucode AND person.hcode = house.hcode INNER JOIN ctitle ON  person.prename = ctitle.titlecode
WHERE visit.visitdate BETWEEN '2019-10-01' AND CURDATE()
AND getAgeMonth(person.birth,CURDATE()) <= 12
AND person.typelive in ('1','3') AND person.pid NOT in (SELECT persondeath.pid from persondeath) GROUP BY visit.visitno ORDER BY person.pid,visit.visitno;

UPDATE visitnutrition vn
INNER JOIN milkpid ON vn.visitno = milkpid.visitno
INNER JOIN visit vt ON vn.visitno = vt.visitno
SET vn.food = '1'
WHERE vt.visitdate BETWEEN '2019-10-01'AND CURDATE()
AND vn.visitno IN (SELECT milkpid.visitno FROM milkpid)
AND vn.food IS NULL;

UPDATE visitnutrition vn
INNER JOIN visit vt ON vn.visitno = vt.visitno
SET vn.bottle = '2'
WHERE vt.visitdate BETWEEN '2019-10-01'AND CURDATE()
AND vn.visitno IN (SELECT milkpid.visitno FROM milkpid)
AND vn.food = '1';
........................
4.ดีกว่าที่จะมารัน คือ แนะนำน้องๆที่คีย์ข้อมูลว่า "หากบันทึกโภชนาการ อย่าลืมบันทึกนมแม่ทุกครั้ง นะ
ค่ะ
5. ก่อนจะรันทั้งหมดทั้งมวล อย่าลืม Excute ตาราง visitnutrition ไปเก็บไว้ในที่ที่ปลอดภัยก่อนนะจ๊ะ

......................081-769-1936@@..............
ฝากเบอร์ไว้คาดว่าจะมีคนโทรหา .ii

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

https://www.blogs

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