我是MySQL中的新手,我有一个包含列
的表+---------------------+-------------+
| Date | Temperature |
+---------------------+-------------+
| 2016-01-01 00:00:00 | 10,1 |
| 2016-01-02 00:00:00 | 10,2 |
| ... | ... |
| 2017-01-01 00:00:00 | 12,1 |
| 2017-01-02 00:00:00 | 12,5 |
+---------------------+-------------+
我想收到结果
+--------+------+------+
| Date | 2016 | 2017 |
+--------+------+------+
| 01 Jan | 10,1 | 12,1 |
| 02 Jan | 10,2 | 12,5 |
| ... | ... | ... |
+--------+------+------+
我想使用子查询,但子查询可以有1行。有人可以帮我写出正确的查询吗?
答案 0 :(得分:0)
您可以尝试以下内容:
select d.fdate, t1.t, t2.t
from
(select distinct month(d) as month, day(d) as day, DATE_FORMAT(d, '%e %b') as fdate from h) as d
left outer join
(select DATE_FORMAT(d, '%e %b') as fdate, t from h where year(`d`) = 2016) as t1 on (d.fdate = t1.fdate)
left outer join
(select DATE_FORMAT(d, '%e %b') as fdate, t from h where year(`d`) = 2017) as t2 on (d.fdate = t2.fdate)
order by d.month, d.day
当然会更改列/表名称
答案 1 :(得分:0)
使用CASE语句
p1