2017-01-09 87 views
0

我有一個表MS-Access數據庫名爲ItemRates其中包含列ItemID, ItemName, TotalFeet, RatePerItem, TotalRate和這個數據庫與我的java應用程序連接。表達式不在聚合或GROUP BY列異常

當我運行下面的查詢

String sql = "SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet FROM ItemRates"; 

我得到以下異常

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 expression not in aggregate or 
GROUP BY columns: PUBLIC.ITEMRATES.TOTALFEET 

我已經看到了有關此異常的StackOverflow和一個公認的答案其他問題建議增加GroupBy子句查詢結束。我加了一個GroupBy條款

String sql = "SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet FROM 
ItemRates GROUPBY ItemName"; 

我得到了大致相同的異常(冒號後有結尾處有兩個例外稍有差別)

net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::3.0.7 expression not in aggregate or 
GROUP BY columns: GROUPBY.TOTALFEET 

我到底錯在這裏做什麼?

回答

2

正確的語法是:

SELECT SUM(TotalRate) AS ItemRateSum, TotalFeet 
FROM ItemRates 
GROUP BY TotalFeet; 

也就是說,TotalFeet不是一個參數到一個聚合函數,所以它需要在GROUP BY

+0

解決了這個問題。一旦時間限制結束,將接受答案。感謝您的答覆。 – Yousaf

0

被選擇並且不是的聚集函數部分的所有列都被條款要包括在組中

+0

SELECT SUM(TotalRate)AS ItemRateSum FROM ItemRates GROUPBY ItemName – uSeruSher

相關問題