我需要一分为二的列来分配列的帮助,具体取决于数据来自。
SELECT DISTINCT MONTH,
(SELECT hwater
FROM test
WHERE (ID = A.ID)
AND (year = 2015)) AS `2015`,
(SELECT hwater
FROM test
WHERE (ID = A.ID)
AND (year = 2016)) AS `2016`
FROM test AS A
WHERE A.year = 2015 OR A.year = 2016
sql-fiddle
2015列将在最初的9个月内人口组成,而2016列则为null,在2016年第二个9个月之后,2015年Null我想在2015年与2015年相同。
month 2015 2016
1 13 65
2 22 67
3 30 69
4 37 74
5 43 84
6 49 91
7 52 91
8 60 96
9 60 102
我按月尝试了小组,这导致仅显示2015年的结果,而2016年为null
该计划是将此数据用作区域图表的数组来视觉上比较梯度。
预先感谢。
尝试使用案例表达式:
SELECT MONTH,
MAX(CASE WHEN year = 2015 THEN hwater ELSE 0 END) as `2015`,
MAX(CASE WHEN year = 2016 THEN hwater ELSE 0 END) as `2016`
FROM test AS A
WHERE A.year = 2015 OR A.year = 2016
GROUP BY MONTH
ORDER BY MONTH
sqlfiddle demo