Mysql 更新表中两个日期范围之间的列时,组函数的使用无效

Mysql 更新表中两个日期范围之间的列时,组函数的使用无效,mysql,cumulative-sum,Mysql,Cumulative Sum,我每天都有一张桌子 柱状 1.date 2.FromDate 3.Target 4.Cumulative_Target 我将每天添加行 因此,每天参考fromdate和date,累积_目标列将更新,如表所示 这就是我需要做的: date Fromdate Target Cumulative_Target 2012-04-16 2012-04-16 500 500

我每天都有一张桌子 柱状

1.date
2.FromDate
3.Target
4.Cumulative_Target
我将每天添加行 因此,每天参考fromdate和date,累积_目标列将更新,如表所示

这就是我需要做的:

    date                Fromdate      Target          Cumulative_Target
    2012-04-16    2012-04-16    500              500                  '(cycle1-started)
    2012-04-17    2012-04-16    500              1000    
    2012-04-18    2012-04-16    800              1800 
    '
    '
    '
    2012-05-15   2012-04-16     200             xxxxxx                 '(cycle1-completed)
    2012-05-16   2012-05-16     150             150                     '(cycle2-started)
    2012-05-17   2012-05-16     100             250
    2012-05-18   2012-05-16     700             950
    '
    '
    '
    '
    2012-06-15  2012-06-15      200             xxxxx                    '(Cycle2-completed)
因此,表中的fromdate将在每个周期中变化

我用于更新的查询是:

UPDATE a_daily 
SET a_daily.Cumulative_Generation = sum(a_daily.Target) 
    between a_daily.Date and a_daily.From_Date
我不知道怎么做计算列请帮助我

UPDATE TableName a
       INNER JOIN 
        (
            SELECT  DATE(a.date) date, 
                    date(a.Fromdate) fromdate,
                    a.target,
                     @accum:=@accum + a.runningTotal AS TOTAL
            FROM 
                (  
                  SELECT  DATE(date) date, 
                          date(Fromdate)Fromdate , 
                          target,
                          SUM(`Target`) AS runningTotal
                  FROM TableName
                  GROUP BY DATE(date), date(Fromdate),target
                  ORDER BY Fromdate
                ) a , (SELECT @accum := 0) s

        ) b ON DATE(a.Date) = b.date AND
               DATE(a.FROMDATE) = b.fromdate AND
              a.target = b.target
SET a.Cumulative_Target = b.total
尝试此查询-

SET @count = 0;
UPDATE a_daily
  SET Cumulative_Target = @count:= target + @count
ORDER BY date

…如果需要,请指定您的order子句

为什么您在更新中使用每日副本?抱歉,现在我已编辑了此问题是否有其他解决方案???累积生成列是什么?您需要在表中存储此数据吗?您始终可以使用SELECT查询计算它。