Есть ли лучший способ написать это? Я хочу создать отдельный столбец значений для каждого end_use_data_type. У меня есть еще больше «end_use_data_type_id»SQL Самый эффективный способ разделения столбца на значения другого столбца
Спасибо!
select coolingvalue, heatingvalue, ventvalue, miscvalue
from analysis a
join (SELECT aeup.value coolingvalue, analysis_id FROM annual_end_use_psft aeup
WHERE aeup.end_use_data_type_id=1) cooling ON cooling.analysis_id=a.analysis_id
join (SELECT aeup.value heatingvalue, analysis_id FROM annual_end_use_psft aeup
WHERE aeup.end_use_data_type_id=2) heating ON heating.analysis_id=a.analysis_id
join (SELECT aeup.value ventvalue, analysis_id FROM annual_end_use_psft aeup
WHERE aeup.end_use_data_type_id=3) ventilation ON ventilation.analysis_id=a.analysis_id
join (SELECT aeup.value miscvalue, analysis_id FROM annual_end_use_psft aeup
WHERE aeup.end_use_data_type_id=4) misc ON misc.analysis_id=a.analysis_id
Одним из способов может быть с помощью шарнира: http://technet.microsoft.com/en-us/library/ms177410%28v=sql. 105% 29.aspx – alex
Извините, что я должен был уточнить - есть еще 10 столбцов, которые я хочу включить в оператор select (включая анализ_ид и т. Д.). Не уверен, что pivot все равно будет работать – arun12345
Какая СУБД вы используете? Postgres? Oracle? –