Computer >> Máy Tính >  >> Lập trình >> MySQL

Truy vấn tổng MySQL với điều kiện IF?

Sum () là một hàm tổng hợp trong MySQL. Bạn có thể sử dụng truy vấn tổng với điều kiện if. Để hiểu truy vấn tổng với điều kiện if, chúng ta hãy tạo một bảng.

Truy vấn tạo bảng -

mysql> create table SumWithIfCondition
   −> (
   −> ModeOfPayment varchar(100)
   −> ,
   −> Amount int
   −> );
Query OK, 0 rows affected (1.60 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into SumWithIfCondition values('Offline',10);
Query OK, 1 row affected (0.21 sec)

mysql> insert into SumWithIfCondition values('Online',100);
Query OK, 1 row affected (0.16 sec)

mysql> insert into SumWithIfCondition values('Offline',20);
Query OK, 1 row affected (0.13 sec)

mysql> insert into SumWithIfCondition values('Online',200);
Query OK, 1 row affected (0.16 sec)

mysql> insert into SumWithIfCondition values('Offline',30);
Query OK, 1 row affected (0.11 sec)

mysql> insert into SumWithIfCondition values('Online',300);
Query OK, 1 row affected (0.17 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -

mysql> select *from SumWithIfCondition;

Sau đây là kết quả -

+---------------+--------+
| ModeOfPayment | Amount |
+---------------+--------+
| Offline       |     10 |
| Online        |    100 |
| Offline       |     20 |
| Online        |    200 |
| Offline       |     30 |
| Online        |    300 |
+---------------+--------+
6 rows in set (0.00 sec)

Đây là truy vấn tổng với điều kiện if.

Trường hợp 1 - nếu đối với Phương thức Thanh toán Trực tuyến

Truy vấn như sau -

mysql> select sum(if(ModeOfPayment = 'Online',Amount,0)) as TotalAmount from SumWithIfCondition;

Sau đây là kết quả -

+-------------+
| TotalAmount |
+-------------+
|         600 |
+-------------+
1 row in set (0.00 sec)

Trường hợp 2 - nếu dành cho Phương thức Thanh toán Ngoại tuyến

Truy vấn như sau -

mysql> select sum(if(ModeOfPayment = 'Offline',Amount,0)) as TotalAmount from SumWithIfCondition;

Sau đây là kết quả -

+-------------+
| TotalAmount |
+-------------+
|          60 |
+-------------+
1 row in set (0.00 sec)