2013-04-02 92 views
0

我使用Mysql時有一個查詢適用於我。 現在我得到甲骨文這個錯誤:查詢ORA-00979中的錯誤:不是GROUP BY表達式

ORA-00979: not a GROUP BY expression 

這是查詢:

SELECT o.neNesId, COUNT(o) 
FROM ParNe AS o 
WHERE o.neBanId = :neBanId 
GROUP BY o.neNesId 

任何想法,爲什麼我有這樣的錯誤?

回答

2

您所查詢的是:

SELECT o.neNesId, COUNT(o) 
FROM ParNe AS o 
WHERE o.neBanId = :neBanId 
GROUP BY o.neNesId 

我的猜測是,o.o不是有效的領域。所以,你有一個表名,列名是預期的。 試試這個:

SELECT o.neNesId, COUNT(*) 
FROM ParNe AS o 
WHERE o.neBanId = :neBanId 
GROUP BY o.neNesId 

或用有效的列名替換*

+0

遺憾的是它不」工作既不*也不與有效的列名.thanks – Amine

+0

@Amine。 。 。你確定'group by'正在處理中嗎?如果'select'中的列不在'group by'中,那麼可能會出現這種類型的錯誤。 –

+0

當我使用Mysql時,它正在工作,當我將數據庫更改爲Oracle時,出現此錯誤。 – Amine

0

使用次數(*)。計數(o)用於休眠而不是在sql查詢中

+0

我正在用hibernate – Amine

+0

使用次數(*)它會幫助您 – Biswajit

+0

我嘗試一下,但不幸的是無法使用。感謝您的幫助 – Amine

-1

嘗試count(1)。

哦,我必須在這裏寫更多,因爲我的回答對於計算器來說太短了。

+0

爲什麼投下了投票?計數(1)而不是計數(o)應該做的伎倆。是否因爲我沒有重寫他的整個查詢? 還有一個問題是,他從一個不理解參數':neBanId'的工具運行他的查詢。 –

0

您需要按照Gordon的例子選擇count(*)或count(1)。如果你堅持使用您的查詢語法,這是沒有必要的,然後試試這個:

SELECT neNesId, count(o) AS o_cnt 
    FROM 
    ( -- your query here -- 
    SELECT 1 neNesId, 2 AS o FROM dual 
) 
    GROUP BY neNesId 
/
相關問題