Oracle
 sql >> Baza danych >  >> RDS >> Oracle

FROM słowo kluczowe nie zostało znalezione tam, gdzie oczekiwano

Wysłany kod nie zawiera from klauzula, ale powiedziałeś, że po prostu jej nie uwzględniłeś. Ma jednak where klauzula - która jest w złym miejscu. Jest to również porównywanie daty z ciągiem, co nie jest dobrym pomysłem, ponieważ opiera się na niejawnej konwersji i ustawieniach NLS sesji. (Być może myślisz, że może porównać ustalony ciąg z datą, którą właśnie przekonwertowałeś na ciąg — ale tak nie jest, przynajmniej na tym samym poziomie zapytania, a i tak byłoby to nieefektywne w tym przypadku). używasz funkcji agregującej, potrzebujesz klauzuli grupowania...

Wygląda na to, że chcesz:

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

lub jeśli chcesz wczorajszą datę bez konieczności jej określania, możesz użyć:

WHERE Booking_Date = TRUNC(sysdate - 1)
GROUP BY REPLACE(CM_NAME, '/', ' '),
   Booking_Date

Dopasuje to tylko wiersze, w których Booking_Date jest dokładnie o północy. Jeśli faktycznie obejmuje inne czasy, możesz zrobić:

WHERE Booking_Date >= TRUNC(sysdate - 1)
AND Booking_Date < TRUNC(sysdate)
GROUP BY REPLACE(CM_NAME, '/', ' '),
   TO_CHAR(Booking_Date,'MM/DD/YYYY')

który będzie obejmował jeden pełny dzień danych.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wdrażanie blokowania optymistycznego w Oracle

  2. DeleteDatabase nie jest obsługiwana przez dostawcę, Oracle z Entity Framework

  3. Oracle Insert Select z zamówieniem według

  4. System.Data.OracleClient.OracleException:ORA-01036:nieprawidłowa nazwa/numer zmiennej

  5. Generowanie oddzielnych wierszy dla każdego miesiąca w zakresie dat