2013-07-25 2 views
-1

У меня проблема с моим приложением Java EE/hibernate. Этот запрос работает в моем модульном тесте, но не в моем приложении.Ошибка SQL 979 с группой по

<named-query name="list.vacant.accessory"> 
     <query>SELECT proty, COUNT(acc.id) 
       FROM ProductType proty, Accessory acc 
       LEFT JOIN acc.productHistoryList phl 
       WHERE phl.status LIKE 'En stock ATOS' 
       AND proty.id = acc.productType.id 
       AND phl.statusDate = (SELECT MAX(statusDate) 
             FROM ProductHistory ph 
             WHERE ph.product=phl.product)          
       GROUP BY proty      
     </query> 
    </named-query> 

У меня есть эта ошибка: SQL Error: 979, SQLState: 42000

ORA-00979: не выражение GROUP BY

Есть ли у вас какие-либо идеи? Спасибо.

+0

http://www.dba-oracle.com/t_ora_00979_not_a_group_by_expression.htm – CloudyMarble

ответ

0

Я не знаю, что касается спящего режима. Но чисто из запроса стоять точка:

SELECT proty, COUNT(acc.id) 
      FROM ProductType proty, Accessory acc 
      LEFT JOIN acc.productHistoryList phl 

Здесь proty указывает ссылка таблицы/Entity и вы группирование по имени таблицы? Не должно быть имени столбца? proty.column?

+0

Вы правы. С этим синтаксисом лучше: SELECT proty.name, proty.id, COUNT (acc.id) ... ORDER BY proty.name – user2007861