У меня есть 2 таблицы.Одним из них является таблица данных, а другим - таблица сопоставления.Таблица сопоставления содержит такие поля, как TYPE, ATTRIBUTE и DESTINATION.Таблица сопоставления указывает, для конкретного типа, какой атрибут представлен в каком столбце таблицы данных
DATA_TABLE
TYPE Data_field1 data_field2 data_field3
-------------------------------------------------
abc 1234 5678 4321
def 5679 1235 9877
Mapping_Table
TYPE Attribute destination
--------------------------------------
abc emp_id data_field1
abc dept_id data_field2
abc ph_no data_field3
def emp_id data_field2
def dept_id data_field3
def ph_no data_field1
Я хочу получить результат, как показано ниже,
Result_Table
Type emp_id dept_id ph_no
------------------------------------------------
abc 1234 5678 4321
def 1235 9877 5679
Я попробовал, как показано ниже,
Select Case when type='abc' then data_field1
when type='def' then data_field2 end emp_id,
case when type='abc' then data_field2
when type='def' then data_field3 end dept_id,
case when type='abc' then data_field3
when type='def' then data_field1 end ph_no
from data_table;
Я вручную проверил TYPE и DESTINATION конкретного ATTRIBUTE из MAPPING_TABLE и сделал вышеуказанный запрос.Проблема в том, что у меня более 50 ТИПОВ, а для каждого ТИПА почти 100 АТРИБУТОВ.Поэтому я не могу сделать запрос, как описано выше, для всех типов.
Так что ожидаю простого или лучшего решения
Заранее спасибо