2015-10-21 4 views
-1

У меня есть один случай отображения результата из mysql. Мне нужно преобразовать строки в столбцы в mysql.Преобразование строк в столбцы в mysql?

Это мой пример:

generator |turbine |trafo |hour 
======================================== 
1   |20  |13  |09:00:00 
3   |21  |15  |10:00:00 
4   |25  |17  |11:00:00 
9   |29  |11  |12:00:00 

В результате мне нужно:

hour  |09:00:00 |10:00:000 |11:00:00 |12:00:00 
========================================================== 
trafo  |13   |15   |17   |11 
turbine  |20   |21   |25   |29 
generator |1   |3   |4   |9 

или (если это возможно):

09:00:00 |10:00:000 |11:00:00 |12:00:00 
============================================= 
13   |15   |17   |11 
20   |21   |25   |29 
1   |3   |4   |9 

Могу ли я показать эти результаты через MySQL Query?

информация: часы использовать время типа.

ответ

2

Это возможно, но боль:

select t, 
     sum(case when hour = '09:00:00' then val else 0 end) as hour_09, 
     sum(case when hour = '10:00:00' then val else 0 end) as hour_10, 
     sum(case when hour = '11:00:00' then val else 0 end) as hour_11 
from (select 'generator' as which, generator as val, hour from t union all 
     select 'turbine', turbine, hour from t union all 
     select 'trafo', trafo, hour from t 
    ) t 
group by t 
Смежные вопросы