Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да направя динамичен пивот с дата и друга колона в Oracle?

Опитвате се да преобразувате 2 колони, дата и идентификатор, така че имате нужда от 2 опорни точки. Моля, опитайте по-долу със заявката, трябва да работи. Не се колебайте да се върнете в случай на въпроси. Това работи в Oracle, но не съм сигурен дали опитвате в други dbms.

select * from (
select * from (
with all_data as 
(select 'NAME1' fname, 123 value, 'ATR' identif, '01-OCT-2018' mydate from dual union all
select 'NAME1' fname, 333 value, 'QTDE' identif, '01-OCT-2018'  mydate from dual union all
select 'NAME2' fname, 212 value, 'ATR' identif, '01-AUG-2018'  mydate from dual union all
select 'NAME2' fname, 123 value, 'QTDE' identif, '01-AUG-2018'  mydate from dual union all
select 'NAME2' fname, 133 value, 'ATR' identif, '01-SEP-2018'  mydate from dual union all
select 'NAME2' fname, 123 value, 'QTDE' identif, '01-SEP-2018'  mydate from dual union all
select 'NAME3' fname, 678 value, 'ATR' identif, '01-AUG-2018'  mydate from dual union all
select 'NAME3' fname, 123 value, 'QTDE' identif, '01-AUG-2018'  mydate from dual )
select identif,fname,value,mydate from  all_data)
pivot 
(
sum(value)
for mydate in ('01-AUG-2018' as "AUG-2018",'01-SEP-2018' as "SEP-2018",'01-OCT-2018' as "OCT-2018")))
pivot
(
sum("AUG-2018") "08-2018"
,sum("SEP-2018") "09-2018"
,sum("OCT-2018") "10-2018"
for identif in ('ATR' ATR,'QTDE' QTDE))
order by 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Инструкция за актуализиране на Oracle с вътрешно присъединяване

  2. Моля, помогнете за предотвратяване на рефакторинг на слоя данни на този ODP.NET код и транзакции

  3. Завръщане от Open World 2013

  4. Как да украсите изхода, идващ от заявката SELECT в командния ред?

  5. Преобразуване между клаузи в съединения