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

Posso trasformare le righe della data in colonne senza dover specificare le date nel pivot? Oracle SQL

Nei pallets sottoquery si seleziona una rappresentazione in formato stringa di date (prossimi cinque o sei giorni). Invece, dovresti selezionare numeri interi, come segue:

select .... , trunc(a.ord_to_ship_date) - trunc(sysdate) as days_ahead, ....

E poi, nella selezione esterna,

pivot .... for days_ahead in (1 as today_plus_1, 2 as today_plus_2, 3 as ....)

Nota che in pallets hai trunc(a.ord_to_ship_date) between sysdate and sysdate + 5 . Ciò significa che se la query viene eseguita esattamente a mezzanotte, otterrai le date di spedizione per oggi, domani, ..., oggi + 5 (SEI giorni in totale). Se è in qualsiasi momento diverso da mezzanotte, avrai solo cinque giorni - ESCLUSO oggi. Non sono sicuro di quale sia il tuo reale requisito, ma potresti voler confrontare con TRUNC(sysdate) invece di sysdate , e vedere esattamente di cosa hai bisogno nella query.