2013-07-25 79 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錯誤:979,SQLSTATE:42000

ORA-00979:不是表達式GROUP BY

你有什麼想法? 謝謝。

+0

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

回答

0

我不知道hibernate映射。但單純從查詢站點:

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

這裏proty指的是表/實體,你是按表名分組?不應該有一個列名? proty.column

+0

你是對的。有了這個語法,最好是:SELECT proty.name,proty.id,COUNT(acc.id)... ORDER BY proty.name – user2007861