sql >> Database teknologi >  >> RDS >> Oracle

Hvordan laver man dynamisk pivot med dato og en anden kolonne i oracle?

Du forsøger at konvertere 2 kolonners dato og identifikator, så du har brug for 2 pivoter. Prøv venligst nedenstående forespørgsel, det burde virke. Tøv ikke med at vende tilbage, hvis du har spørgsmål. Dette virker i Oracle, men er ikke sikker på, om du prøver i andre 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. Tilbagekald adgang til postgres-database for en rolle

  2. MySQL grupperer resultater efter tidsperioder

  3. MariaDB LIMIT-erklæring bringer mere end grænsen

  4. få børnekategoriens overordnede navn med en enkelt forespørgsel i mysql