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

Czy mogę przestawiać wiersze dat na kolumny bez konieczności określania dat w przestawieniu? Oracle SQL

W pallets podzapytanie wybierz ciąg reprezentujący daty (następne pięć lub sześć dni). Zamiast tego powinieneś wybrać liczby całkowite w następujący sposób:

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

A następnie, w zewnętrznym zaznaczeniu,

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

Zwróć uwagę, że w pallets masz trunc(a.ord_to_ship_date) between sysdate and sysdate + 5 . Oznacza to, że jeśli zapytanie zostanie uruchomione dokładnie o północy, otrzymasz daty wysyłki na dziś, jutro, ..., dzisiaj + 5 (łącznie SZEŚĆ dni). Jeśli jest inny czas niż północ, dostaniesz tylko pięć dni - Z WYŁĄCZENIEM dzisiejszego dnia. Nie jesteś pewien, jakie są Twoje rzeczywiste wymagania, ale możesz porównać z TRUNC(sysdate) zamiast sysdate i zobacz dokładnie, czego potrzebujesz w zapytaniu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PLS-00103 Błąd procedury składowanej Oracle

  2. przekonwertuj obiekt Oracle Blob na typ xml

  3. SQLException:naruszenie protokołu. Problem ze sterownikiem Oracle JDBC

  4. AWS Python Lambda z Oracle - Generowanie OID nie powiodło się nawet po dodaniu HOSTALIASES

  5. Kolejność parametrów procedury składowanej w C# Oracle