เทคนิคการสรุปข้อมูลสต๊อกสินค้า ด้วยคำสั่ง SQL
ตารางสต๊อกเก็บข้อมูลสต๊อกสินค้าตามรูป เราจะมาดูการเขียนคำสั่ง SQL เพื่อสรุปข้อมูลสต๊อกสินค้าปัจจุบันกัน
ปกติแล้วคำสั่ง SUM() ของ SQL ใช้ในการบวกข้อมูลเข้าด้วยกัน แต่เนื่องจากในการเก็บสต๊อกของสินค้า เราจะต้องลบจำนวนสินค้าในสต๊อกด้วยข้อมูลขาออก (OUT)
ชึ่งเทคนิคในการลบข้อมูลด้วย SUM() สามารถทำได้ง่ายๆด้วยการคูณข้อมูลตัวที่ต้องการลบด้วย -1 ครับ ดูตัวอย่างในโค้ดเลย
ผลลัพท์ของ Query ด้านบน มีเพื่อนสมาชิกเสนอมาอีกวิธี
ซึ่งจากการที่ผมลองทดสอบดู พบว่าแบบหลังสามารถทำงานได้เร็วกว่าเล็กน้อยครับ
ชึ่งเทคนิคในการลบข้อมูลด้วย SUM() สามารถทำได้ง่ายๆด้วยการคูณข้อมูลตัวที่ต้องการลบด้วย -1 ครับ ดูตัวอย่างในโค้ดเลย
SELECT `product_id`,SUM(`quantity`) AS `quantity` FROM (
(SELECT `product_id`,`quantity` FROM `app_stock` WHERE `status` = 'IN')
UNION ALL
(SELECT `product_id`,`quantity` * -1 AS `quantity` FROM `app_stock` WHERE `status` = 'OUT')
) AS Q GROUP BY `product_id`
ผลลัพท์ของ Query ด้านบน มีเพื่อนสมาชิกเสนอมาอีกวิธี
SELECT `product_id`,SUM( IF(`status`='IN', `quantity`, `quantity`*-1) ) AS `quantity`
FROM `app_stock`
GROUP BY `product_id`
ซึ่งจากการที่ผมลองทดสอบดู พบว่าแบบหลังสามารถทำงานได้เร็วกว่าเล็กน้อยครับ