ผมว่าน่าจะลบข้อมูล (Person บัญชี 1) ที่ cid ขึ้นต้นด้วย 0 หรือเป็นค่าว่าง หรือ 11111111111 ประมาณนี้ ที่
1. ไม่เคยรับบริการใดๆ เลย มีแต่ชื่อในบัญชี 1
2. เคยรับบริการล่าสุดตามที่กำหนด (เช่น 1 ปีย้อนหลัง ให้ลบออกจาก Person)
แบบนี้จะทำให้ ประวัติการรักษาพยาบาลยังอยู่ครบ แต่ Person จะไม่ถูกส่งออกไปในปีงบ 2556
ลองดูคำสั่งแบบเท่าที่คิดได้ครับ (ในกรณีทำ Patient_Link)
ตรวจสอบบัญชี 1 ว่าคนที่มีเลขบัตรขึ้นต้นด้วย 0 หรือเลขบัตรว่าง และ มารับบริการล่าสุด 30 ก.ย. 54 ลงไปมีใครบ้าง
SELECT * from person WHERE (cid like'0%' OR cid=' ') and patient_hn in(SELECT hn from vn_stat WHERE vstdate<'2011-10-01');
ลบคนที่มีเลขบัตรขึ้นต้นด้วย 0 หรือเลขบัตรว่าง และ มารับบริการล่าสุด 30 ก.ย. 54 ลงไป ทั้งหมดในบัญชี 1
DELETE from person WHERE (cid like'0%' OR cid=' ') and patient_hn in(SELECT hn from vn_stat WHERE vstdate<'2011-10-01');
ตรวจสอบบัญชี 1 ว่าคนที่มีเลขบัตรขึ้นต้นด้วย 0 หรือเลขบัตรว่าง ที่ยังไม่เคยมีรับบริการเลย มีใครบ้าง
SELECT * from person WHERE (cid like'0%' OR cid=' ') and patient_hn not in(SELECT hn from vn_stat);
ลบคนที่มีเลขบัตรขึ้นต้นด้วย 0 หรือเลขบัตรว่าง ที่ยังไม่เคยมีรับบริการเลย ทั้งหมดในบัญชี 1
DELETE from person WHERE (cid like'0%' OR cid=' ') and patient_hn not in(SELECT hn from vn_stat);
ลองไปประยุกต์ดูนะครับ หรือท่านอื่นมีความเห็นว่าอย่างไร