将表数据转换为新视图

时间:2015-06-11 04:09:21

标签: mysql

我有一个SQL查询来选择以下结果。

    |Port| Type|Size|
    _________________
    |JKT | D40 | 10 |
    |JKT | D50 | 20 |
    |ABC | D30 | 10 |
    |KFC | D50 | 20 |

我想把结果放到如下表中,JKT,ABC,KFC都没有修复。

     |D30 | D40 | D50   <<< this is fix in the table.
JKT  | 0  |  10 | 20
ABC  | 10 |  0  |  0
KFC  | 0  |  0  | 50

我在JSP中这样做,因为环境问题我在Notepad ++中这样做,无论如何我只需要逻辑。请指导。

1 个答案:

答案 0 :(得分:1)

selec port, sum(case when type = 'd30' then size else 0 end) as d30, sum(case when type = 'd40' then size else 0 end) as d40, sum(case when type = 'd50' then size else 0 end) as d50 from table group by port 中没有group concat语法,因此可以使用条件聚合执行此操作:

MySql pivoting

如果有很多端口,那么您可以使用{{1}}功能。寻找{{1}}。例如MySQL pivot table