以下是我的输入表:
输入表格
|---------------------|------------------|
| date | total |
|---------------------|------------------|
| 12-1-2017 | 10 |
|---------------------|------------------|
| 12-2-2017 | 20 |
|---------------------|------------------|
| 12-1-2016 | 30 |
|---------------------|------------------|
| 12-2-2016 | 40 |
|---------------------|------------------|
| 12-3-2016 | 50 |
|---------------------|------------------|
我希望查询的结果具有如下的动态年份列:
|---------------------|------------------|------------------|
| day | total_2017 | total_2016 |
|---------------------|------------------|------------------|
| 12-1 | 10 | 30 |
|---------------------|------------------|------------------|
| 12-2 | 20 | 40 |
|---------------------|------------------|------------------|
| 12-3 | 0 | 50 |
|---------------------|------------------|------------------|
有人能用最好的方法帮助我吗?
答案 0 :(得分:1)
这是一种方法:
select month(date), day(date),
sum(case when year(date) = 2017 then total else 0 end) as total_2017,
sum(case when year(date) = 2016 then total else 0 end) as total_2016
from t
group by month(date), day(date);