Oracle
 sql >> база данни >  >> RDS >> Oracle

Ключовата дума FROM не е намерена, където се очаква

Кодът, който публикувахте, няма from клауза, но казахте, че просто не сте я включили. Той обаче има where клауза - която е на грешното място. Той също така сравнява дата с низ, което не е добра идея, тъй като разчита на имплицитно преобразуване и NLS настройки на сесията. (Може би си мислите, че може да сравни фиксирания низ с датата, която току-що сте преобразували в низ - но това не е така, поне на същото ниво на заявка, и така или иначе би било неефективно в този случай.) И както вие използвате агрегатна функция, имате нужда от клауза за групиране...

Изглежда, че искате:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да конвертирате десетичен в шестнадесетичен с помощта на TO_CHAR() в Oracle

  2. Разработване на локален екземпляр на Oracle

  3. Как да търсите нов ред char в таблицата на oracle?

  4. Разделете голям текстов/CSV файл на множество файлове в PL SQL

  5. Как да анализирате ефективно json в Oracle 18c?