将行表转换为mysql中的列

问题描述:

我有一个列图,用户可以在每年插入一个值。将行表转换为mysql中的列

我的表是这样的。

enter image description here

是否有可能以查看这样我的表?

| Course | 2013 | 2014 | 2015 | // column name 
    | BSIT  | 657 | 453 | 424 | 
    | Education| 657 | 453 | 424 | 

我要查看像这样我的柱形图显示这个样子

enter image description here

我不知道这个问题是可以做到的。我希望...

如果其限制在年少量(不喜欢的东西,然后20年以前),那么它可以与有条件的聚集这样实现:

SELECT Course, 
     max(CASE WHEN year = 2013 then value end) as year_2013, 
     max(CASE WHEN year = 2014 then value end) as year_2014, 
     max(CASE WHEN year = 2015 then value end) as year_2015, 
     .....More years if you need 
FROM YourTable 
GROUP BY Course 
+0

我的图表有一个选择标记这是我的用户可以使用ajax每年更改记录。如果用户选择2015年,例如图表显示从2015年到2013年的记录,并且如果用户选择2016年图表显示从2016年到2014年。如何从sql中做这样的条件? –

+0

你不能在ajax里面过滤吗?你可以在所有可能年份的表格中创建它,然后筛选他选择的那些 – Yossi

+0

谢谢你帮助我。经过几次尝试并尝试使用您的代码后,我发现可以通过更改CASE WHEN旁边的年份值来使用ajax进行过滤。非常感谢你,你的回答帮了我很多#Yossi –