2012-11-03 44 views
6

Tôi có hai bảng: o_daily_lcsgenerationo_daily_generation.Sử dụng chức năng nhóm không hợp lệ trong khi cập nhật bảng có chức năng tổng hợp

Trong khi cố gắng cập nhật các o_daily_generation tôi nhận được một lỗi nói:

error(1111) invalid use of Group function 

Đây là mã Tôi đang chạy:

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) 

Trả lời

7

Hãy thử điều này thay vì:

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

^thiếu bảng bí danh –

+0

@MikeCauser - cập nhật. Cảm ơn. –

1

tôi đã cập nhật truy vấn trên dựa trên câu trả lời ở trên nhưng có một vấn đề.

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; 

Nó cung cấp cho

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

Bạn phải chọn cột 'release_id' trong bảng được gọi là' t2' để sử dụng nó trong mệnh đề join. – Kobi

Các vấn đề liên quan