2017-01-09 2 views
0

Ich habe eine Tabelle in MS-Access Datenbank mit dem Namen ItemRates, die Spalten ItemID, ItemName, TotalFeet, RatePerItem, TotalRate enthält und diese Datenbank ist mit meiner java Anwendung verbunden.Ausdruck nicht in Aggregat oder GROUP BY Spalten Ausnahme

Wenn ich die folgende Abfrage ausführen

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

ich die folgende Ausnahme erhalten

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

ich weitere Fragen zu dieser Ausnahme im Zusammenhang gesehen haben, auf StackOverflow und eine akzeptierte Antwort vorgeschlagen GroupBy Klausel hinzufügen bei das Ende der Abfrage Ich habe eine GroupBy Klausel

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

und ich habe fast gleiche Ausnahme (es gibt einen kleinen Unterschied zwischen zwei Ausnahmen am Ende nach dem Doppelpunkt)

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

Was mache ich falsch hier?

Antwort

2

Die korrekte Syntax ist durch Klausel enthalten sein:

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

Das heißt, TotalFeet ist kein Argument zu einer Aggregationsfunktion, so muss es in der GROUP BY sein.

+0

Das löste das Problem. Wird die Antwort akzeptieren, sobald das Zeitlimit abgelaufen ist. Vielen Dank für Ihre Antwort. – Yousaf

0

Alle Spalten, die und sind nicht Teil der Aggregatfunktionen ausgewählt werden, haben in der Gruppe

+0

SELECT Summe (TotalRate) AS ItemRateSUM VON ItemRates GROUPBY ItemName – uSeruSher