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