2012-11-03 8 views
6

Ich habe zwei Tabellen: o_daily_lcsgeneration und o_daily_generation.Ungültige Verwendung der Gruppenfunktion beim Aktualisieren einer Tabelle mit Summenfunktion

Beim Versuch, den o_daily_generation erhalte ich einen Fehler zu aktualisieren, zu sagen:

error(1111) invalid use of Group function 

Hier ist der Code Ich verwende:

update o_daily_generation join o_daily_lcsgeneration 
on o_daily_generation.Location =o_daily_lcsgeneration.Location 
    and o_daily_generation.Date =o_daily_lcsgeneration.Date 
set o_daily_lcsgeneration.Turbine_Generation =sum(o_daily_generation.Turbine_Generation) 

Antwort

7

Versuchen Sie stattdessen:

UPDATE o_daily_generation od 
INNER JOIN 
(
    SELECT Location, SUM(Turbine_Generation) TurbineSum 
    FROM o_daily_lcsgeneration 
    GROUP BY Location 
) og ON od.Location = og.Location 
SET od.Turbine_Generation = og.TurbineSum 
+0

^fehlende Tabelle alias –

+0

@MikeCauser - aktualisiert. Vielen Dank. –

1

I habe die obige Abfrage basierend auf der obigen Antwort aktualisiert, aber es gibt ein Problem.

UPDATE tmpTotal t1 
    INNER JOIN 
    (
     SELECT thirdlevel_delivery_id, MAX(baseline_id) MaxBaseLineId 
     FROM tmpTotal 
     GROUP BY release_id 
    ) t2 ON t1.release_id = t2.release_id 
    SET t1.planned_delivery_date = t2.MaxBaseLineId; 

Es gibt

Error Code : 1054 
Unknown column 't2.release_id' in 'on clause' 
+1

Sie müssen die Spalte 'release_id' in der Anweisung' t2' auswählen, um sie in der Join-Klausel zu verwenden. – Kobi

Verwandte Themen