Query ที่ได้มาหน้าตาเป็นแบบนี้ค่ะ
โดยใส่คำสั่งเรียงวันที่ตามโค้ดที่อาจารย์ได้ให้คือ
คุณไปลองทดสอบดูผลลัพธ์นะครับว่าถูกต้องหรือไม่
ที่ตำแหน่งสีแดง เราเปลี่ยนแหล่งข้อมูลจากเทเบิล T ธรรมดาๆที่เรียกในชื่อ T1 มาเป็น T ที่เพิ่มฟิลด์วันที่น้อยที่สุดของสินค้าตัวเดียวกันโดยเรียกชื่อว่า MinD และเรียกรวมทั้งหมดเป็น T1 เหมือนเดิม
ส่วนการจัดเรียงในตำแหน่งสีฟ้า ก็แทรก MinD เข้าเป็นฟิลด์แรกสุดของ Ordered By ของเดิมครับ
SELECT T1.BFQty
+(select nz(sum(T2.InQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D <= T1.D)
-(select nz(sum(T2.OutQty),0) from T as T2 where T2.ItemCD = T1.ItemCD and T2.D < T1.D) AS TotalQty, *
FROM (SELECT T2.*, (SELECT MIN(T3.D) FROM T AS T3 WHERE T3.ItemCD = T2.ItemCD) as MinD FROM T AS T2) AS T1
ORDER BY T1.MinD, T1.ItemCD, T1.D;
จากนั้นหนูเลยเอาQuery นี้ไปMake tableใหม่ค่ะ ชื่อTable Monthly_FG
เปิดตารางดูเป็นแบบด้านล่างคือเรียงวันที่ 2-Marไปอยุ่ท้ายเหมือนเดิม ถูกต้อง
แต่พอไปเปิดโครงสร้างTable Monthly_FG ที่ได้จาก Query make table ตรงDate มันเลยเปลี่ยนชนิดเป็นText
ทีนี่เลยจะเอาTable Monthly_FG มาทำQueryกลับไม่เรียงค่ะ
ถ้าอย่างนี้ มีกรณีไหนที่ Date เป็นTextแล้วให้เรียงวันที่ตามเดือนได้ไหมคะ
หรือมีวิธีไหนที่ ตอน Query make table แล้วให้ Date เป็นชนิด Date/time เหมือนข้อมูลแรกไหมคะ