sql >> Base de Datos >  >> RDS >> Oracle

¿Puedo convertir filas de fechas en columnas sin tener que especificar las fechas en el pivote? oracle SQL

En las pallets subconsulta selecciona una representación de cadena de fechas (próximos cinco o seis días). En lugar de eso, debe seleccionar números enteros, de la siguiente manera:

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

Y luego, en la selección exterior,

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

Tenga en cuenta que en pallets tienes trunc(a.ord_to_ship_date) between sysdate and sysdate + 5 . Esto significa que si la consulta se ejecuta exactamente a la medianoche, obtendrá las fechas de envío de hoy, mañana, ..., hoy + 5 (SEIS días en total). Si es en cualquier otro momento que no sea la medianoche, obtendrá solo cinco días, EXCLUYENDO hoy. No estoy seguro de cuál es su requisito real, pero es posible que desee compararlo con TRUNC(sysdate) en lugar de sysdate y vea exactamente lo que necesita en la consulta.