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

แบบสอบถามรวม MySQL พร้อมเงื่อนไข IF?


Sum() เป็นฟังก์ชันรวมใน MySQL คุณสามารถใช้คิวรีผลรวมกับเงื่อนไข if เพื่อให้เข้าใจผลรวมของแบบสอบถามที่มีเงื่อนไข if ให้เราสร้างตาราง

แบบสอบถามเพื่อสร้างตาราง −

mysql> สร้างตาราง SumWithIfCondition −> ( −> ModeOfPayment varchar(100) −> , −> Amount int −> );Query OK, 0 แถวได้รับผลกระทบ (1.60 วินาที)

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์',10); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 100); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที )mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์', 20); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.13 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 200); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออฟไลน์', 30); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.11 วินาที) mysql> แทรกลงในค่า SumWithIfCondition ('ออนไลน์', 300); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที)

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

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

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+--------------+-------+| โหมดการชำระเงิน | จำนวน |+--------------+-------+| ออฟไลน์ | 10 || ออนไลน์ | 100 || ออฟไลน์ | 20 || ออนไลน์ | 200 || ออฟไลน์ | 30 || ออนไลน์ | 300 |+-----------------------+-------+6 แถวในชุด (0.00 วินาที)

นี่คือการสืบค้นผลรวมที่มีเงื่อนไข if

กรณีที่ 1 - ถ้าสำหรับโหมดการชำระเงินออนไลน์

แบบสอบถามมีดังนี้ −

mysql> เลือก sum(if(ModeOfPayment ='Online',Amount,0)) เป็น TotalAmount จาก SumWithIfCondition;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------+| ยอดรวม |+-------------+| 600 |+-------------+1 แถวในชุด (0.00 วินาที)

กรณีที่ 2 - ถ้าสำหรับโหมดการชำระเงินออฟไลน์

แบบสอบถามมีดังนี้ −

mysql> เลือก sum(if(ModeOfPayment ='Offline',Amount,0)) เป็น TotalAmount จาก SumWithIfCondition;

ต่อไปนี้เป็นผลลัพธ์ -

<ก่อนหน้า>+-------------+| ยอดรวม |+-------------+| 60 |+-------------+1 แถวในชุด (0.00 วินาที)