mysql把行转成列
原始数据:
code | name | REPORT_NAME | amount |
---|---|---|---|
1 | A | 2023销量 | 100 |
1 | A | 2022销量 | 200 |
1 | A | 2021销量 | 400 |
1 | B | 2023销量 | 300 |
1 | B | 2020销量 | 100 |
输出数据:
code | name | 2023销量 | 2022销量 | 2021销量 | 2020销量 |
---|---|---|---|---|---|
1 | A | 100 | 200 | 400 | 0 |
1 | B | 300 | 0 | 0 | 100 |
SQL:
SELECT
code,
name,
sum( if( REPORT_NAME = '2023销量', amount, 0 ) ) AS '2023销量',
sum( if( REPORT_NAME = '2022销量', amount, 0 ) ) AS '2022销量',
sum( if( REPORT_NAME = '2021销量', amount, 0 ) ) AS '2021销量',
sum( if( REPORT_NAME = '2020销量', amount, 0 ) ) AS '2020销量'
FROM table
group by code,name;