Как создать представление с присоединением неиндексных значений - PullRequest
1 голос
/ 08 апреля 2020

У меня есть таблица tcmcs008 как:

curr|excb|rate|rapr
USD |1   |0.77|2
AUD |1   |0.68|1
INR |2   |1   |1
:
:

Индекс является curr. И еще одна таблица с описаниями перечислимых полей для разных таблиц:

tabl    |fild|valu|dscr
tcmcs008|excb|1   |Yes
tcmcs008|excb|2   |No
tcmcs008|rapr|1   |Yes
tcmcs008|rapr|2   |No
tcibd001|type|1   |Purchase Item
tcibd001|type|2   |Cost Item
tcibd001|type|3   |Manufactured item
:
:

index is tabl | fild | valu

Я хочу создать представление для tcibd008 (и для других таблиц как ну) типа:

curr|excb  |rate|rapr
USD |Yes   |0.77|No
AUD |Yes   |0.68|Yes
INR |No    |1   |Yes
:
:

Я мог бы сделать это с помощью жесткого кодирования как:

CREATE OR ALTER VIEW A_tcmcs008060 As 
SELECT t.ccur, 
       CASE WHEN t.excb = 1 THEN 'Yes'
            ELSE 'No'
       END, 
       rate,
       CASE WHEN t.rapr = 1 THEN 'Yes'
            ELSE 'No'
       END
FROM ttcmcs008060 t

Может ли кто-нибудь помочь в достижении этого с помощью объединения таблиц или любым другим способом?

1 Ответ

1 голос
/ 08 апреля 2020

Вы можете использовать join:

CREATE OR ALTER VIEW A_tcmcs008060 As 
    SELECT t.ccur, e.dscr, t.rate
    FROM ttcmcs008060 t LEFT JOIN
         enums e
         ON t.excb = e.valu and e.fild = 'excb';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...