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查询计算它。