2012-11-03 15 views
6

Mam dwie tabele: o_daily_lcsgeneration i o_daily_generation.Niepoprawne użycie funkcji grupy podczas aktualizowania tabeli z funkcją sumy

Podczas próby aktualizacji o_daily_generation dostaję błąd mówiąc:

error(1111) invalid use of Group function 

Oto kod używam:

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) 

Odpowiedz

7

Spróbuj to zamiast:

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

^brakuje tabela aliasów –

+0

@MikeCauser - aktualizowana. Dzięki. –

1

I zaktualizowałem powyższe zapytanie na podstawie powyższej odpowiedzi, ale wystąpił 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; 

Daje

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

Musisz wybrać kolumnę 'release_id' w instrukcji zwanej' t2', aby użyć jej w klauzuli join. – Kobi

Powiązane problemy