MySQL: ERROR 1111 (HY000): Falsche Verwendung einer Gruppierungsfunktion

MrSpoocy

Grünschnabel
Hi,

folgende Query wird bei mir den fehler "ERROR 1111 (HY000): Falsche Verwendung einer Gruppierungsfunktion" aus. Jedoch habe ich keine ahnung warum :/

PHP:
INSERT INTO average (DBitemID,FortyDays,Server) (SELECT T2.DBitemID,AVG(T2.Preis),T2.Server FROM history_avg AS T2 WHERE T2.DayTime >= 20070215 GROUP BY T2.DBitemID,T2.Server) ON DUPLICATE KEY UPDATE average.FortyDays=AVG(T2.Preis);

Nutze MySQL 4.1 @ Debian-Linux.

In der Doc. von MySQL steht...

Im Werteteil von ON DUPLICATE KEY UPDATE können Sie Spalten in anderen Tabellen referenzieren, solange Sie im SELECT-Teil nicht GROUP BY verwenden. Eine Begleiterscheinung besteht darin, dass Sie nichteindeutige Spaltennamen im Werteteil qualifizieren müssen.

Aber noch unklarer konnte man es nicht schreiben, habe leider keine Ahnung was die damit meinen.

mfg Spoocy
 
da du in deiner Subquery für den Insert ein Group By genutzt hast, funktioniert onDuplicateKey nicht mehr. Ich vermute mal, weil die Datenbank nun u.U. mehrere Datensätze in die Tabelle einfügen muss, und nicht genau weiß, auf welche Spalte sich die onDuplicateKey-Anweisungen beziehen.
 
Zurück