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

VFP 8/9 ใช้หลักของ ANSI SQL (1992) จึงมีการตรวจสอบว่าอนุคำสั่ง GROUP BY  จะใช้ได้เมื่อทุกฟิลด์/คอลัมน์ไม่เป็น Aggregate Field (นัยยะหมายถึงพวกที่ต้องคำนวณหาทั้งหลาย เช่น sum(total) , max , min นั่นแหละ) ไม่เช่นนั้นจะถือว่าใช้คำสั่งผิด ซึ่งเราอาจตั้งค่าให้ไม่ต้องตรวจสอบเรื่องนี้ได้โดยใช้คำสั่ง

SET ENGINEBEHAVIOR 70

โดยไว้ก่อนจะสั่งคำสั่งที่ใช้ GROUP BY ครับ ผมยังไม่มีเวลาหาข้อมูลต่อว่า เพราะอะไรเค้าถึงไม่ยอมให้ใช้ (เฉพาะ VFP นี่แหละ) ดังนั้นแนะนำว่าถ้าไม่ชัวร์ก็พยายามเลี่ยงนะครับ เพราะเค้าก็ต้องมีเหตุผลของเค้าแหละซึ่งมันอาจผิดพลาดได้ง่ายสำหรับกรณีแบบนี้ เราควรหาทางอื่นดีกว่าซึ่งทำได้เยอะแยะไป ไม่งั้นเกิดทำมึนๆใช้ๆไป ทำไปเยอะๆใช้ไปนานๆเข้าไปแล้วเจอ Runtime Error / Bug เข้าในตอนที่ลืมไปแล้วจะยุ่งและไม่คุ้มเสียครับ เว้นแต่ว่าคุณรู้ว่าคุณกำลังทำอะไร ^_^

เจอกันตอนหน้าครับ
สวัสดี

ความคิดเห็น

  1. ถ้าใครอยากรู้ว่า SET ENGINEBEHAVIOR 70 | 80 | 90 ต่างกันอย่างไร ก็ไปอ่านเพิ่มตามลิงก์นี้ได้เลยครับ
    https://msdn.microsoft.com/en-us/library/ax9aye37(v=vs.80).aspx

    ตอบลบ

แสดงความคิดเห็น

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

เมื่อ VFP Table พัง

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

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