Многочисленные ошибки JPQL: в предложении SELECT подзапроса может быть объявлено только одно выражение; Правая скобка отсутствует в подвыражении - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть этот рабочий SQL-запрос:

Select * from company c where c.idcompany = 
    (SELECT result.idcompany FROM 
        (SELECT p.idcompany , COUNT(*) AS times FROM person p INNER JOIN company c ON p.idcompany = c.idcompany 
             GROUP BY c.idcompany, p.idcompany ORDER BY times DESC LIMIT 1)
    AS result)

Короче говоря, он выбирает компанию с наибольшим количеством сотрудников (у каждого сотрудника есть личный адрес компании, на которую он работает)

Мне нужна версия JPQL. Это то, что я до сих пор:

Select c from Company c where c.idcompany IN 
      (SELECT result.idcompany FROM 
            (SELECT p.idcompany , COUNT(*) AS times FROM Person p JOIN Company c
                  GROUP BY c.idcompany, p.idcompany ORDER BY times DESC, LIMIT 1) 
             AS result

Это ошибки, которые я получаю:

StandardWrapperValve [проект]: Servlet.service () для проекта сервлета выбросил исключение: стек локальных исключений: исключение [EclipseLink-0] (Eclipse Persistence Services - 2.6.4.qualifier): org.eclipse.persistence.exceptions.JPQLException

Описание исключения:

[175, 175] В подвыражении отсутствует правая скобка.

[82, 112] Только одно выражение может быть объявлено в предложении SELECT подзапрос.

[176, 176] Для диапазона должна быть указана идентификационная переменная объявление переменной.

[177, 177] В выражении IN отсутствует правая скобка.

[197, 204] Порядок по элементам не является допустимым выражением.

[204, 216] Запрос содержит неправильное окончание.

Я новичок в JPQL, и любая помощь будет признательна

...