Динамическое вращение в Oracle - PullRequest
0 голосов
/ 25 декабря 2018

Привет! Я хочу применить динамическое вращение к таблице со структурой как

ID  Type    Amount
--- ------  ------
1   AB      50
2   PQR     100
3   AB      60
4   PQR     120

Я хочу получить результат в следующем формате:

enter image description here

В моей таблице каждый месяц значения столбца типа меняются.Поэтому я хочу, чтобы динамические значения сводной таблицы получали желаемый результат.Я пытался поворачиваться в соответствии с синтаксисом, но всякий раз, когда я пытался разместить подзапрос в операторе IN pivot, он выдавал ошибку.Я использую Oracle 10 г.Может кто-нибудь, пожалуйста, помогите мне в этом вопросе.Спасибо.

Select * from(
              Select ID , Type, Value 
                from mytable)x
               pivot(sum(Value) for Type IN (Select distinct Type from myTable))

1 Ответ

0 голосов
/ 25 декабря 2018

Если вы хотите получить динамические результаты, вы можете использовать xml вариант pivoting

with t(ID, Type, Amount) as
(
 select 1,'AB',50 from dual union all
 select 2,'PQR',100 from dual union all
 select 3,'AB',60 from dual union all
 select 4,'PQR',120 from dual
)
select * 
  from(
       select ID , Type, Amount 
         from t )
    pivot xml( 
               sum(Amount) as sum_amount for (type) 
                 in (Select distinct Type from t)
              );

Rextester Demo

...