Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

แบบสอบถาม MySQL เพื่อรวมมูลค่าราคาสินค้าจากคอลัมน์ที่คล้ายกันสำหรับลูกค้ารายเดียวกันและแสดงผลในคอลัมน์เดียวกัน


สำหรับสิ่งนี้ ให้ใช้ SUM() ร่วมกับ GROUP BY ให้เราสร้างตารางก่อน -

mysql> สร้างตาราง DemoTable( ชื่อลูกค้า varchar(100), Product_1_Price int, Product_2_Price int);สืบค้นตกลง 0 แถวได้รับผลกระทบ (0.73 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('John',67,89); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> แทรกลงในค่า DemoTable ('David',769,890); ตกลง ตกลง 1 แถวได้รับผลกระทบ ( 0.14 วินาที) mysql> แทรกลงในค่า DemoTable ('David',987,1000); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.15 วินาที) mysql> แทรกลงในค่า DemoTable ('John',900,111); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว ( 0.12 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------+-----------+------------- ----+| ชื่อลูกค้า | Product_1_ราคา | Product_2_ราคา |+--------------------------+-----------+-------------- ----+| จอห์น | 67 | 89 || เดวิด | 769 | 890 || เดวิด | 987 | 1000 || จอห์น | 900 | 111 |+-------------+-----------+------------ ---+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อ SUM ค่าและแสดงผลสำหรับลูกค้าเดียวกัน -

mysql> เลือก CustomerName,SUM(Product_1_Price) AS Total1,SUM(Product_2_Price) เป็น Total2 จากกลุ่ม DemoTable ตามชื่อลูกค้า

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+---------+-------+| ชื่อลูกค้า | Total1 | รวม2 |+--------------+---------+-------+| จอห์น | 967 | 200 || เดวิด | 1,756 | 1890 |+--------------+-------+-------+2 แถวในชุด (0.00 วินาที)