auszuführen Wenn ich versuche, diese SQL-SELECT-Anweisung in Microsoft Access ich eine Fehlermeldung auszuführen:Microsoft Acces einen Fehler msg wirft bei dem Versuch, einen SQL-SELECT
SELECT (tblBestelldetails.Einzelpreis * tblBestelldetails.Anzahl) AS Barwert
, tblKunden.Firma, Count(tbl.BestellungID)
FROM (tblBestellungen
INNER JOIN tblBestelldetails
ON tblBestellungen.BestellungID = tblBestelldetails.BestellungID)
INNER JOIN tblKunden
ON tblBestellungen.KundeID = tblKunden.KundeID;
Es funktioniert jedoch nicht, wenn ich das hinzufügen Count(tbl.BestellungID)
Feld in die SELECT-Anweisung. Außerdem weiß ich, dass ich es später durch BestellungID
gruppieren musste, aber ich versuchte es und es behob mein Problem nicht.
Die seltsame Sache ist, wenn ich die Count(tbl.BestellungID)
es sagt, hinzufügen, dass
Der Parameter (tblBestelldetails.Einzelpreis * tblBestelldetails.Anzahl) AS Barwert funktioniert nicht, weil es keine Aggregationsfunktion ist.
Weiß jemand, wie ich das beheben kann?
Sie müssen nach allen nicht aggregierten Feldern gruppieren. 'GROUP BY (tblBestelldetails.Einzelpreis * tblBestelldetails.Anzahl) , tblKunden.Firma' kann nicht von Barwert gruppiert werden, da dieser Alias der Gruppe aufgrund der Reihenfolge der Operationen einer select-Anweisung nicht bekannt ist. (FROM, Joins, Gruppieren nach, Auswählen, Haben, Sortieren nach) – xQbert
Im Allgemeinen möchten Sie * nicht nach Feldern gruppieren, die Sie in einer Aggregatfunktion verwenden. Normalerweise möchten Sie nach anderen Feldern gruppieren. –