sql >> Databasteknik >  >> RDS >> Oracle

Sökordet FROM hittades inte där det förväntades

Koden du postade har ingen from klausul, men du sa att du bara inte hade inkluderat den. Den har dock en where klausul - som är på fel ställe. Det är också att jämföra ett datum med en sträng, vilket inte är en bra idé eftersom det är beroende av implicit konvertering och session NLS-inställningar. (Du kanske tror att den kan jämföra den fasta strängen med det datum du just konverterade till en sträng - men det är inte fallet, åtminstone i samma frågenivå, och skulle vara ineffektivt i det här fallet.) Och som du använder aggregerad funktion behöver du en grupp-för-sats...

Det verkar som att du vill:

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

eller om du vill ha gårdagens datum utan att behöva ange det kan du använda:

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

Det kommer bara att matcha rader där Booking_Date är precis vid midnatt. Om det faktiskt inkluderar andra tider kan du göra:

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

som kommer att inkludera en enda hel dag med data.




  1. varje gång du trycker till heroku visas inte bilder, gem

  2. Välja alla poster om posten har något av ID:n från Array

  3. mysql concat_ws utan dubbletter

  4. Vad är längden på en PHP-sessions-id-sträng?