Kode yang Anda posting tidak memiliki from
klausa, tetapi Anda mengatakan bahwa Anda tidak memasukkannya. Namun, ia memiliki where
klausa - yang berada di tempat yang salah. Itu juga membandingkan tanggal dengan string, yang bukan ide bagus karena bergantung pada konversi implisit dan pengaturan sesi NLS. (Mungkin Anda pikir itu dapat membandingkan string tetap dengan tanggal yang baru saja Anda konversi ke string - tetapi bukan itu masalahnya, setidaknya dalam tingkat kueri yang sama, dan bagaimanapun juga akan tidak efisien dalam kasus ini.) Dan karena Anda menggunakan fungsi agregat, Anda memerlukan klausa kelompok demi kelompok...
Sepertinya Anda ingin:
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
atau jika Anda ingin tanggal kemarin tanpa harus menentukannya, Anda dapat menggunakan:
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
Itu hanya akan cocok dengan baris di mana Booking_Date
tepat tengah malam. Jika itu benar-benar termasuk waktu lain maka Anda dapat melakukan:
WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
yang akan mencakup satu hari penuh data.