O código que você postou não tem um
from
cláusula, mas você disse que simplesmente não a incluiu. No entanto, tem um where
cláusula - que está no lugar errado. Também está comparando uma data com uma string, o que não é uma boa ideia, pois depende da conversão implícita e das configurações de NLS da sessão. (Talvez você pense que pode comparar a string fixa com a data que você acabou de converter em uma string - mas esse não é o caso, pelo menos no mesmo nível de consulta, e seria ineficiente de qualquer maneira nesse caso.) E como você estão usando a função agregada, você precisa de uma cláusula group-by ... Parece que você quer:
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
ou se você quiser a data de ontem sem precisar especificar você pode usar:
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
Isso corresponderá apenas às linhas em que a
Booking_Date
é exatamente meia-noite. Se realmente incluir outras vezes, você pode fazer:WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
que incluirá um único dia inteiro de dados.