MySQL - 在一行中查询和分组
MySQL - Query and group in a single row
我有一组数据如下:
员工编号
Salary_Basic
Salary_Transport
年
E001
12000
3000
2018
E002
9000
2000
2018
E001
13000
3200
2019
E002
10000
2400
2019
E003
15000
5000
2019
我想要的是:
员工编号
NetSalary_Year2018
NetSalary_Year2019
E001
15000
16200
E002
11000
12400
E003
0
20000
任何人都可以在 MySQL 上建议 sql 查询吗?
谢谢
正如@Akina 所说,使用“条件聚合”。
例如:
select
employeeid,
sum(case when year = 2018 then salary_basic + salary_transport else 0 end) as net_salary_2018,
sum(case when year = 2019 then salary_basic + salary_transport else 0 end) as net_salary_2019
from t
group by employeeid
我有一组数据如下:
员工编号 | Salary_Basic | Salary_Transport | 年 |
---|---|---|---|
E001 | 12000 | 3000 | 2018 |
E002 | 9000 | 2000 | 2018 |
E001 | 13000 | 3200 | 2019 |
E002 | 10000 | 2400 | 2019 |
E003 | 15000 | 5000 | 2019 |
我想要的是:
员工编号 | NetSalary_Year2018 | NetSalary_Year2019 |
---|---|---|
E001 | 15000 | 16200 |
E002 | 11000 | 12400 |
E003 | 0 | 20000 |
任何人都可以在 MySQL 上建议 sql 查询吗?
谢谢
正如@Akina 所说,使用“条件聚合”。
例如:
select
employeeid,
sum(case when year = 2018 then salary_basic + salary_transport else 0 end) as net_salary_2018,
sum(case when year = 2019 then salary_basic + salary_transport else 0 end) as net_salary_2019
from t
group by employeeid