Mã bạn đã đăng không có from
nhưng bạn đã nói rằng bạn chưa bao gồm nó. Tuy nhiên, nó có where
mệnh đề - sai chỗ. Nó cũng so sánh một ngày với một chuỗi, điều này không phải là một ý tưởng hay vì nó dựa trên cài đặt NLS chuyển đổi ngầm và phiên. (Có lẽ bạn nghĩ rằng nó có thể so sánh chuỗi cố định với ngày bạn vừa chuyển đổi thành chuỗi - nhưng không phải vậy, ít nhất là trong cùng một cấp độ truy vấn, và dù sao thì cũng không hiệu quả trong trường hợp này.) Và như bạn đang sử dụng hàm tổng hợp, bạn cần một mệnh đề theo nhóm ...
Có vẻ như bạn muốn:
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
hoặc nếu bạn muốn ngày hôm qua mà không cần phải chỉ định, bạn có thể sử dụng:
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
Điều đó sẽ chỉ khớp với các hàng có Booking_Date
là vào đúng nửa đêm. Nếu nó thực sự bao gồm những thời điểm khác thì bạn có thể làm:
WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
sẽ bao gồm một ngày dữ liệu duy nhất.