VFP SQL UPDATE ปรับปรุงค่าในฟิลด์ด้วยค่าจากตารางอื่น

ก่อนนี้ผมใช้ VFP มาแบบโบราณ เวลาเปลี่ยนค่าใน Field ก็ใช้ DO WHILE ร่วมกับ REPLACE ก็รอดมาได้ แต่ต่อมามาใช้ SQL ก็ดูเหมือนว่าชีวิตจะสะดวกสบายขึ้น โดยเฉพาะการปรับปรุงค่าในฟิลด์ของ Tabel_1 ด้วยค่าในฟิลด์ของ Table_2 ง่ายกว่าการใช้ DO WHILE ร่วมกับ REPLACE แบบเดิมๆมากมายมหาศาลเชียวล่ะ อยากรู้ก็อ่านต่อไปครับว่าทำได้ยังไง

เค้าว่าตัวอย่างที่ดีมีค่ากว่าคำสอน ดังนั้น...เอาตัวอย่างไปครับ

* เปิด table
USE old_value IN 0
USE new_value IN 0

* สั่ง update field_name ใน old_value ด้วย field_name จาก new_value
UPDATE old_value ;
FROM new_value ;
WHERE old_value .keyfield = new_value .keyfield ;
SET old_value .field_namenew_value .field_name

* สังเกตผล

SELECT old_value
BROWSE

จากตัวอย่างที่เห็นข้างต้นนี้ เราเปลี่ยนค่าในฟิลด์ที่ชื่อว่า field_name ของตาราง old_value ด้วยค่าใน field_name ของตาราง new_value ซึ่งแน่นอนว่าต้องระบุลงไปให้ชัดเจนใน SQL Command ด้วยว่าจะให้ฟิลด์ใดเป็นตัวอ้างอิงระหว่างกัน โดยระบุลงไปในคำสั่ง WHERE ได้เลยครับสะดวกมาก

WHERE old_value .keyfield = new_value .keyfield 

ซึ่งเป็นเงื่อนไขว่าให้ VFP ดูให้ค่าในฟิลด์ keyfield ของทั้งสอง table ให้ตรงกันด้วยไม่งั้นค่าปนกันเละแน่ๆ 

จากตัวอย่างข้างต้นผมเขียนเป็น Clean Code และระบายสีไว้ให้แล้ว เวลายกไปใช้จะได้เปลี่ยนค่าตัวแปร ค่าฟิลด์ได้ง่ายๆครับ หวังว่าคงได้รับประโยชน์จากการอ่านครั้งนี้นะครับ

ขอให้เพื่อนๆมีความสุขกับการเขียนโปรแกรมครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เมื่อ VFP Table พัง

การใช้ Array ร่วมกับ Function

VFP ใช้ GROUP BY ได้ไหม?