Kód, který jste zveřejnili, nemá from
klauzule, ale řekl jste, že jste ji prostě nezahrnuli. Má však where
doložka - která je na špatném místě. Porovnává také datum s řetězcem, což není dobrý nápad, protože se spoléhá na implicitní převod a nastavení NLS relace. (Možná si myslíte, že může porovnat pevný řetězec s datem, které jste právě převedli na řetězec - ale není tomu tak, alespoň ve stejné úrovni dotazu, a v tomto případě by to bylo stejně neefektivní.) používáte agregační funkci, potřebujete klauzuli seskupit podle...
Zdá se, že chcete:
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
nebo pokud chcete včerejší datum, aniž byste jej museli uvádět, můžete použít:
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
To bude odpovídat pouze řádkům s Booking_Date
je přesně o půlnoci. Pokud ve skutečnosti zahrnuje i jiné časy, můžete:
WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
která bude zahrnovat jeden celý den dat.