上一年的价值应该加上当年的价值并给出总和

时间:2013-11-29 04:58:59

标签: mysql sql

我想插入新行,今年总和+上一年的价值插入到今年的新rawwiend

示例

  

在2014年1月1日总和所有降雨量值= 2013年的2245和2012年的总和= 2250年2014-01-01应该插入新的原始表格2013年值为2245 + 2250

我怎么能这样做........请帮助我,我可以从这段代码获得2013年的总和,但我怎样才能增加上一年的价值,并在表格中插入总和为2013年

INSERT IGNORE INTO `clima_data`.`mas_aver_curve` ( `year` , `cumulative`  ) 
SELECT year(str_to_date(date, '%m/%d/%Y'))as year round(sum(rainfall),1) 
FROM reg_data3 G
GROUP BY  year(date) ;

2 个答案:

答案 0 :(得分:0)

你在找这个吗?

INSERT INTO mas_aver_curve (year, cumulative)
SELECT '2014-01-01', ROUND(SUM(rainfall), 1) rainfall
  FROM reg_data3 G
 WHERE date >= '2012-01-01'
   AND date <  '2014-01-01';

这是 SQLFiddle 演示

答案 1 :(得分:0)

要将前一年的总和计入累积字段,请使用此sqlFiddle

INSERT INTO mas_aver_curve(year,cumulative)
SELECT year(date) as year,
      (SELECT sum(rainfall)
       FROM reg_data3 as G
       WHERE G.date <= G2.date) as cumulative
FROM reg_data3 G2
GROUP BY year;

如果你想要2014年的一行以及所有其他年份的总计,请使用此sqlFiddle

INSERT INTO mas_aver_curve(year,cumulative)
SELECT year(date) as year,
       (SELECT sum(rainfall)
        FROM reg_data3 as G
        WHERE G.date <= G2.date) as cumulative
FROM (SELECT date,rainfall FROM reg_data3 G2
      UNION
      SELECT curdate() + INTERVAL 1 YEAR,0
     )G2
GROUP BY year;