Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Kann ich Datumszeilen in Spalten pivotieren, ohne die Daten im Pivot angeben zu müssen? Oracle-SQL

In den pallets Unterabfrage wählen Sie eine Zeichenfolgendarstellung von Datumsangaben (die nächsten fünf oder sechs Tage). Stattdessen sollten Sie Ganzzahlen wie folgt auswählen:

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

Und dann in der äußeren Auswahl

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

Beachten Sie das in pallets Sie haben trunc(a.ord_to_ship_date) between sysdate and sysdate + 5 . Das heißt, wenn die Abfrage genau um Mitternacht ausgeführt wird, erhalten Sie Versanddaten für heute, morgen, ..., heute + 5 (insgesamt SECHS Tage). Wenn es zu einem anderen Zeitpunkt als Mitternacht ist, erhalten Sie nur fünf Tage – AUSSCHLIESSLICH heute. Sie sind sich nicht sicher, was Ihre tatsächliche Anforderung ist, aber Sie möchten vielleicht mit TRUNC(sysdate) vergleichen statt sysdate , und sehen Sie genau, was Sie in der Abfrage benötigen.