2013-11-27 20 views
0

我想從reg_data3選擇常規數據,並得到平均每月值,並插入到平均表作爲更新,但它不能很好地工作。選擇常規數據,並插入到平均每月值更新,但錯誤

SELECT 
    year(str_to_date(date, '%Y-%m-%d'))as year, 
    month(str_to_date(date, '%Y-%m-%d')) as month, 
    round(avg(evep),2), 
    round(Avg(sunshine_hrs),2), 
    round(sum(rainfall),2), 
    round(AVG(max_temp),2), 
    round(avg(min_temp),2) 
FROM 
    reg_data3 
GROUP BY 
    year(str_to_date(date, '%Y-%m-%d')), 
    month(str_to_date(date, '%Y-%m-%d')) 
ORDER BY 1 Desc 

UPDATE 
    avg_month_val 
set 
    year='year' , 
    month='month', 
    evep='evep' , 
    sunshine_hrs='sun_shine_hrs', 
    rainfall='rainfall', 
    max_temp='max_temp', 
    min_temp='min_temp'; 
+0

我試圖格式化,看看我能讀懂它。我失敗了。你能更好地格式化嗎? –

+0

我也試過,並決定保存它。請看看你的意思。 –

+0

@PreetSangha現在好吧 – SasinduRHN

回答

1

試試這個:

UPDATE 
    avg_month_val 

set 
    `year`   = YEAR(STR_TO_DATE(`date`, '%Y-%m-%d')), 
    `month`   = MONTH(STR_TO_DATE(`date`, '%Y-%m-%d')), 
    `evep`   = ROUND(AVG(`evep`), 2), 
    `sunshine_hrs` = ROUND(AVG(`sunshine_hrs`) ,2), 
    `rainfall`  = ROUND(SUM(`rainfall`), 2), 
    `max_temp`  = ROUND(AVG(`max_temp`), 2), 
    `min_temp`  = ROUND(AVG(`min_temp`), 2) 

FROM 
    reg_data3 

GROUP BY 
    MONTH(STR_TO_DATE(`date`, '%Y-%m-%d')), 
    MONTH(STR_TO_DATE(`date`, '%Y-%m-%d')) 
+0

感謝所有.. sql語法錯誤什麼意思reg_data3一個什麼謝謝 – SasinduRHN

+0

對不起更正它 –