Нахождение количества самых популярных автомобилей и общее количество арендованных автомобилей - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь найти самый популярный арендованный автомобиль по заданным данным, а также по количеству дней аренды. Я написал этот код PL / SQL, чтобы сделать работу

create or replace procedure CarRentalSiteDetail (id IN CarRentalSite.CarRentalSiteId%TYPE) as

rental_name CarRentalSite.CarRentalSiteName%TYPE;
rental_city CarRentalSite.City%TYPE;
num number;
pop number;
c_name Car.CarName%TYPE;
total number;

BEGIN

Select CarRentalSite.CarRentalSiteName into rental_name from CarRentalSite where CarRentalSiteId = id; 
Select CarRentalSite.City into rental_city from CarRentalSite where CarRentalSiteId = id; 
Select count(Rentals.CarRentalSiteId) into num from CarRentalSite INNER JOIN Rentals ON CarRentalSite.CarRentalSiteId = Rentals.CarRentalSiteId where CarRentalSite.CarRentalSiteId = id Group by CarRentalSite.CarRentalSiteId;
Select CarId into pop from (Select CarId, count(count) as c from Rentals Group By CarId Order By c desc) where rownum = 1;
Select Car.CarName into c_name from Car where CarId = pop;
Select t into total from (Select CarId, sum(count) as t from Rentals Group By CarId) s where s.CarId = pop;

dbms_output.PUT_line(CONCAT('CarRentalSite Name: ',rental_name));
dbms_output.PUT_line(CONCAT('CarRentalSite City: ',rental_city));
dbms_output.PUT_line(CONCAT('CarRentalSite Total Rentals: ',num));
dbms_output.PUT_line(CONCAT('Most Popular Compact Car: ',c_name));
dbms_output.PUT_line(CONCAT('Total Days Rented: ', total));

END CarRentalSiteDetail;
/

show errors;

BEGIN
CarRentalSiteDetail(1);
end;
/

То, что я написал логически, имеет для меня смысл и должно выполнять работу, но оно возвращает эту ошибку. У меня проблемы с исправлением

15/1     PL/SQL: SQL Statement ignored
15/49    PL/SQL: ORA-00904: "COUNT": invalid identifier
17/1     PL/SQL: SQL Statement ignored
17/45    PL/SQL: ORA-00904: "COUNT": invalid identifier

1 Ответ

2 голосов
/ 18 марта 2019

count - это зарезервированное слово в Oracle DB (на большинстве серверов SQL), и вы не можете использовать его в качестве имени столбца или переменной.

Попробуйте изменить его, и вы не получите эту ошибку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...