Вывод результатов вложенных сложных запросов - PullRequest
0 голосов
/ 02 марта 2020

У меня есть запрос, как описано ниже:

SELECT ID, TYPE || TO_NUMBER(REPLACE(INC_SLOT, 'INCR_', '')) AS INCR_SLOT, FEE
FROM
(
 SELECT * FROM RBDATA WHERE DEPT='HR';
)
UNPIVOT (FEE FOR INC_SLOT IN (INCR_1, INCR_2, INCR_3, INCR_4, INCR_5))

Структура таблицы RBDAT выглядит следующим образом:

---------------------------------------------------------------------------------------
| ID | DEPT | CAT | FNAME | LNAME | TYPE | INCR_1 | INCR_2 | INCR_3 | INCR_4 | INCR_5 |
---------------------------------------------------------------------------------------

У меня есть другая таблица с именем PRIMS , который структурирован следующим образом:

--------------------------------------------------------------
| ID | DEPT | CAT | FNAME | LNAME | DOB | SEX | STATUS | SEC |
--------------------------------------------------------------

Я хотел бы отобразить ID, SE C, INCR_SLOT, FEE, когда ID, DEPT и CAT совпадают для значения, присутствующие в PRIMS и RBDATA.

Большое спасибо за ваше время и помощь заранее.

1 Ответ

1 голос
/ 02 марта 2020

Для облегчения, я бы сделал еще один SELECT:

SELECT A.ID, B.SEC, A.INCR_SLOT, A.FEE
 FROM(
        SELECT ID, TYPE || TO_NUMBER(REPLACE(INC_SLOT, 'INCR_', '')) AS INCR_SLOT
            --ADDING THIS TOO
               , DEPT, CAT
            --
            , FEE
          FROM
            (
             SELECT * FROM RBDATA WHERE DEPT='HR';
            )
        UNPIVOT (FEE FOR INC_SLOT IN (INCR_1, INCR_2, INCR_3, INCR_4, INCR_5))
  ) A,
  PRIMS B
 WHERE A.ID = B.ID
   AND A.DEPT = B.DEPT
   AND A.CAT = B.CAT; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...