投稿したコードにfrom
がありません 条項が含まれていなかったとおっしゃいました。ただし、where
はあります 条項-これは間違った場所にあります。また、日付と文字列を比較していますが、暗黙的な変換とセッションNLS設定に依存しているため、お勧めできません。 (おそらく、固定文字列を文字列に変換したばかりの日付と比較できると思うかもしれませんが、少なくとも同じレベルのクエリではそうではなく、この場合はとにかく非効率的です。)そしてあなたとして集計関数を使用している場合は、group-by句が必要です...
あなたが望むように思えます:
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
または、指定せずに昨日の日付が必要な場合は、次を使用できます。
WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
Booking_Date
これは、Booking_Date
が存在する行にのみ一致します ちょうど真夜中です。実際に他の時間が含まれている場合は、次のことができます。
WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
TO_CHAR(Booking_Date,'MM/DD/YYYY')
これには、1日のデータが含まれます。