Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

FROM kata kunci tidak ditemukan di tempat yang diharapkan

Kode yang Anda posting tidak memiliki from klausa, tetapi Anda mengatakan bahwa Anda tidak memasukkannya. Namun, ia memiliki where klausa - yang berada di tempat yang salah. Itu juga membandingkan tanggal dengan string, yang bukan ide bagus karena bergantung pada konversi implisit dan pengaturan sesi NLS. (Mungkin Anda pikir itu dapat membandingkan string tetap dengan tanggal yang baru saja Anda konversi ke string - tetapi bukan itu masalahnya, setidaknya dalam tingkat kueri yang sama, dan bagaimanapun juga akan tidak efisien dalam kasus ini.) Dan karena Anda menggunakan fungsi agregat, Anda memerlukan klausa kelompok demi kelompok...

Sepertinya Anda ingin:

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

atau jika Anda ingin tanggal kemarin tanpa harus menentukannya, Anda dapat menggunakan:

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

Itu hanya akan cocok dengan baris di mana Booking_Date tepat tengah malam. Jika itu benar-benar termasuk waktu lain maka Anda dapat melakukan:

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

yang akan mencakup satu hari penuh data.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle &Pagination

  2. Bagaimana cara mengatur LINESIZE dan PAGESIZE dengan variabel substitusi?

  3. Bagaimana Memvalidasi Nomor Kartu Kredit dan Mengidentifikasi Jenisnya Menggunakan PL/SQL?

  4. Pembaruan oracle membandingkan Varchar

  5. tambahkan catatan di nlog ke bidang dengan dataType =date