Il codice che hai pubblicato non ha un from
clausola, ma hai detto che non l'avevi inclusa. Tuttavia, ha un where
clausola - che è nel posto sbagliato. Sta anche confrontando una data con una stringa, il che non è una buona idea in quanto si basa sulla conversione implicita e sulle impostazioni NLS della sessione. (Forse pensi che possa confrontare la stringa fissa con la data che hai appena convertito in una stringa, ma non è così, almeno nello stesso livello di query, e sarebbe comunque inefficiente in questo caso.) E come tu stai usando la funzione di aggregazione, hai bisogno di una clausola di raggruppamento...
Sembrerebbe che tu voglia:
SELECT REPLACE(CM_NAME, '/', ' ') as CM_NAME,
TO_CHAR(Booking_Date,'MM/DD/YYYY') AS Booking_Date,
sum(Air_Revenue) as TTL_AIRFARE,
sum(Room_Revenue) as TTL_ROOM,
sum(Car_Revenue) AS TTL_CAR,
sum(Activity_Revenue) as TTL_ACTIVITY,
0 as TTL_CRUISE
FROM your_table
WHERE Booking_Date = DATE '2018-03-20'
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
oppure se vuoi la data di ieri senza doverla specificare puoi usare:
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
Ciò corrisponderà solo alle righe in cui è Booking_Date
è esattamente mezzanotte. Se effettivamente include altre volte, puoi fare:
WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
che includerà un solo giorno intero di dati.