Можно ли создать несколько столбцов для нескольких строк, используя ключевое слово PIVOT в Oracle, используя один запрос вместо двух запросов, как показано ниже.Например ..
1)
SELECT
*
FROM
(
SELECT elig.person_id,elig.cmpo_key, recm.pyin_amt FROM sp_cmpo_elig elig, sp_base_pay_recm recm
WHERE elig.cmpo_elig_key=recm.cmpo_elig_key AND elig.person_id='807114' ) temp
pivot (Max(temp.pyin_amt) FOR (cmpo_key) IN (1 AS pyin_amt_1, 2 AS pyin_amt_2, 3 AS pyin_amt_3, 4 AS pyin_amt_4 ))
Если я использую этот запрос, я получаю вывод, как показано ниже ..
PERSON_ID PYIN_AMT_1 PYIN_AMT_2 PYIN_AMT_3 PYIN_AMT_4
807114 1524.23 235.25 235.25 235.25
2)
SELECT
*
FROM
(
SELECT elig.person_id,elig.cmpo_key, recm.pyin_pct FROM sp_cmpo_elig elig, sp_base_pay_recm recm
WHERE elig.cmpo_elig_key=recm.cmpo_elig_key AND elig.person_id='807114' ) temp
pivot (Max(temp.pyin_pct) FOR (cmpo_key) IN (1 AS pyin_pct_1, 2 AS pyin_pct_2, 3 AS pyin_pct_3, 4 AS pyin_pct_4 ))
Вывод:
PERSON_ID PYIN_PCT_1 PYIN_PCT_2 PYIN_PCT_3 PYIN_PCT_4
807114 2 5 5 3
Могу ли я создать один запрос вместо двух, как указано выше.Пожалуйста, предоставьте решения для этого.
Примечание: я пробовал также с union, если я использую union, он выдаст две записи, как показано ниже ...
PERSON_ID PYIN_AMT_1 PYIN_AMT_2 PYIN_AMT_3 PYIN_AMT_4
807114 1524.23 235.25 235.25 235.25
807114 2 5 5 3
мой ожидаемый результат не похож на выше,Я ожидаю, как показано ниже ....
PERSON_ID PYIN_AMT_1 PYIN_AMT_2 PYIN_AMT_3 PYIN_AMT_4 PYIN_PCT_1 PYIN_PCT_2 PYIN_PCT_3 PYIN_PCT_4
807114 1524.23 235.25 235.25 235.25 2 5 5 3