Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Posso dinamizar linhas de data em colunas sem precisar especificar as datas no pivô? Oracle SQL


Nos pallets subconsulta você seleciona uma representação de string de datas (próximos cinco ou seis dias). Em vez disso, você deve selecionar números inteiros, como segue:
select .... , trunc(a.ord_to_ship_date) - trunc(sysdate) as days_ahead, ....

E então, na seleção externa,
pivot .... for days_ahead in (1 as today_plus_1, 2 as today_plus_2, 3 as ....)

Observe que em pallets você tem trunc(a.ord_to_ship_date) between sysdate and sysdate + 5 . Isso significa que se a consulta for executada exatamente à meia-noite, você obterá as datas de envio para hoje, amanhã, ..., hoje + 5 (total de SEIS dias). Se for a qualquer hora que não seja meia-noite, você terá apenas cinco dias - EXCLUINDO hoje. Não tenho certeza de qual é o seu requisito real, mas você pode querer comparar com TRUNC(sysdate) em vez de sysdate e veja exatamente o que você precisa na consulta.