2015-07-15 3 views
0

У меня есть данные в ниже формата в исходной таблице:столбца к строке преобразования данных в Netezza

 MTH_ID VOL 

    201306 29699420633 
    201307 31573662296 
    201308 31482365216 
    201309 31037480379 
    201310 33828084122 

Я хочу написать запрос SQL в Netezza, чтобы преобразовать данные в ниже формате

201306   201307  201308  201309  201310 

29699420633 31573662296 31482365216 31037480379 33828084122 

В исходной таблице у меня более 50 строк и выше данные - всего лишь выборочные данные. Пожалуйста, помогите мне в этом. Заранее спасибо.

+0

Я ничего не знаю о Netezza, но я не думаю, что это может (или должно) быть сделано с помощью SQL любым удобным способом , – Anders

+0

Используйте функцию Nzlua https://www-304.ibm.com/connections/forums/html/topic?id=33f35cc8-1d09-4444-93ab-493454a020ab – Abhis

ответ

0

Иногда excel может быть вашим лучшим IDE. Сначала возьмите отчетный список mth_ids.

select distinct mth_id 
from table 
order by 1 

Скопировать список и вставить в excel. Добавьте формулу для построения оператора case. сазе enter image description here

Вставить из Excel в IDE и выполнить запрос:

select sum(case when mth_id = 201306 then vol else null end) as "201306" 
,sum(case when mth_id = 201307 then vol else null end) as "201307" 
,sum(case when mth_id = 201308 then vol else null end) as "201308" 
,sum(case when mth_id = 201309 then vol else null end) as "201309" 
,sum(case when mth_id = 201310 then vol else null end) as "201310" 
from table 
+0

Спасибо за это решение. –

+0

Спасибо за это решение. Но столбец mth_id всегда имеет разное количество строк с разными значениями. –

+0

Если вам нужно автоматизировать его, а затем один раз запустить его. Вы должны использовать язык сценариев. – Niederee

Смежные вопросы