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

รวม SUM คอลัมน์เมื่อเงื่อนไขในอีกคอลัมน์หนึ่งตรงตามใน MySQL

ใช้ SUM() ร่วมกับ GROUP BY เพื่อรวมค่าตามเงื่อนไข

สร้างตารางและเพิ่มข้อมูล

mysql> create table DemoTable ( 
    -> EmployeeName varchar(20), 
    -> JoiningDate date, 
    -> Salary int 
    -> ); 
Query OK, 0 rows affected (0.54 sec)
mysql> insert into DemoTable values('David','2019-11-02',400); 
Query OK, 1 row affected (0.52 sec) 
mysql> insert into DemoTable values('Robert','2018-11-25',100); 
Query OK, 1 row affected (0.39 sec) 
mysql> insert into DemoTable values('Bob','2019-12-14',600); 
Query OK, 1 row affected (0.25 sec) 
mysql> insert into DemoTable values('Carol','2019-11-03',300); 
Query OK, 1 row affected (0.23 sec)

คิวรี่รวมเงินเดือนตามปีและเดือน

mysql> select year(JoiningDate) as JoiningYear, 
    -> month(JoiningDate) as JoiningMonth, 
    -> sum(Salary) as Total, 
    -> group_concat(EmployeeName) as Name 
    -> from DemoTable 
    -> group by JoiningYear, JoiningMonth;

ผลลัพธ์

+-------------+--------------+-------+-------------+ 
| JoiningYear | JoiningMonth | Total | Name        | 
+-------------+--------------+-------+-------------+ 
|        2018 |           11 |   100 | Robert      | 
|        2019 |           11 |   700 | David,Carol | 
|        2019 |           12 |   600 | Bob         | 
+-------------+--------------+-------+-------------+ 
3 rows in set (0.04 sec)

GROUP_CONCAT() ใช้รวมชื่อพนักงานในแต่ละกลุ่มเพื่อดูรายละเอียด