Oracle: почему возникает ошибка ?

Здравствуйте,
в общем есть такой запрос:
SELECT S.cost
    FROM(
            (
                SELECT shoppingserviceid ,cost,bsid
                FROM service JOIN shopping_service 
                ON service.serviceid = shopping_service.serviceid 
            ) S JOIN provided_service
            ON provided_service.shoppingserviceid = S.shoppingserviceid
        ) P JOIN provide_service_detail
        ON  provide_service_detail.providedserviceid = P.providedserviceid

при выполнении которой возвращается ошибка
CDbCommand failed to execute the SQL statement: ORA-00933: SQL command not properly ended. The SQL statement executed was:

Спасибо заранее!
  • Вопрос задан
  • 3188 просмотров
Пригласить эксперта
Ответы на вопрос 3
azrail_dev
@azrail_dev
Тут сложно что-то понять, юзай именованые запросы, всё станет на свои места.
WITH имя_запроса AS (подзапрос)
Ответ написан
Комментировать
@almyk Автор вопроса
Сделал вот так вроде работает:

SELECT *
		FROM service 
			JOIN shopping_service 
				ON service.serviceid = shopping_service.serviceid
			JOIN provided_service
				ON provided_service.shoppingserviceid = shopping_service.shoppingserviceid
			JOIN provide_service_detail
				ON provide_service_detail.providedserviceid = provided_service.providedserviceid
Ответ написан
Комментировать
@Geny
1. S.cost - на верхнем уровне не виден
2. Условие provide_service_detail.providedserviceid = P.providedserviceid не отработает
3. Нужно переписать как-то так
SELECT S.cost
  FROM (select * from ((SELECT shoppingserviceid, cost, bsid FROM service JOIN shopping_service ON service.serviceid = shopping_service.serviceid) S JOIN
         provided_service ON provided_service.shoppingserviceid = S.shoppingserviceid)) P
  JOIN provide_service_detail
    ON provide_service_detail.providedserviceid = P.providedserviceid
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы