Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zrobić dynamiczny pivot z datą i kolejną kolumną w Oracle?

Próbujesz przekonwertować 2 kolumny daty i identyfikatora, więc potrzebujesz 2 osi. Spróbuj poniższego zapytania, powinno działać. Nie wahaj się wrócić w przypadku jakichkolwiek pytań. Działa to w Oracle, ale nie jestem pewien, czy próbujesz w innych 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. BŁĄD:Odwołaj się do licznika jako celu przypisania — PL/SQL

  2. Równe (=) vs. LIKE dla typu danych daty

  3. jak ustawić serveroutput na używanie połączenia jdbc w Jmeter?

  4. Oracle BI Publisher — Jak sformatować liczby jako tekst, aby zera wiodące nie zniknęły?

  5. R12.2 Podsumowanie cyklu aktualizacji online