Oracle PIVOT выборочные строки в столбцы - PullRequest
0 голосов
/ 18 марта 2019

Заранее спасибо .... !!!

Я ищу PIVOT двух полей суммы в несколько столбцов на основе столбца, например, PIVOT_NAME У меня есть несколько других полей, которые действуют как BK, которые останутся как строки Столбцы BK: BKCOL1, DEPT, YEAR_PD, TRANS_DATE например ВХОД

BKCOL1  DEPT    YEAR_PD TRAN_DATE   PIVOT_NAME  TY_SALES    LY_SALES
100_bk  D1      2020002 2019-10-11  P1         -1           1
100_bk  D1      2020002 2019-10-12  P2         -2           2
100_bk  D1      2020002 2019-10-11  P3         -3           3
100_bk  D1      2020002 2019-10-14  P4         -4           4
100_bk  D2      2020002 2019-10-14  P1         -5           5
100_bk  D2      2020002 2019-10-16  P2         -7           7
100_bk  D2      2020002 2019-10-17  P3         -8           8
100_bk  D2      2020002 2019-10-18  P5         -9           9

Добавление входного табличного изображения, а также

ВХОДНОЙ СТОЛ

Ожидаемый ВЫХОД: Ожидаемый ВЫХОД

Все поля TY% заполняются с TY_SALES Все поля LY% заполнены с LY_SALES и на основании PIVOT_NAME т.е. если `` PIVOT_NAME = P1, то я хочу заполнить TY_P1_SALES и LY_P1_SALES и т. д.

1 Ответ

0 голосов
/ 18 марта 2019

Это pivot дает желаемый результат:

select bkcol1, dept, year_pd, tran_date, 
       p1_ty, p2_ty, p3_ty, p4_ty, p5_ty,
       p1_ly, p2_ly, p3_ly, p4_ly, p5_ly
  from input
  pivot (sum(ty_sales) ty, sum(ly_sales) ly for pivot_name in ('P1' p1, 'P2' p2, 'P3' p3, 'P4' p4, 'P5' p5))
  order by dept, tran_date

демо

Добавьте псевдонимы для столбцов, если хотите, чтобы другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...