比如一张表 有一个商品每月的销售情况
肥皂 201801 50
肥皂 201802 31
肥皂 201803 33
肥皂 201804 0
.
肥皂 201811 1
肥皂 201812 21现在需要你计算出一个新值 是这一年每月的累积销量
肥皂 201801 50
肥皂 201802 81
肥皂 201803 114
肥皂 201804 114如何用查询的方式得出结果
还要用到存储过程
我想了很多方法但是越用越复杂
肥皂 201801 50
肥皂 201802 31
肥皂 201803 33
肥皂 201804 0
.
肥皂 201811 1
肥皂 201812 21现在需要你计算出一个新值 是这一年每月的累积销量
肥皂 201801 50
肥皂 201802 81
肥皂 201803 114
肥皂 201804 114如何用查询的方式得出结果
还要用到存储过程
我想了很多方法但是越用越复杂
参考了之前大神给我的解决方案
http://bbs.csdn.net/topics/392315964update demo表 set total_cost=(select sum(cost) from(select * from demo表) b where b.日期>demo表.日期);
-- 全部累计
SELECT DATA.*, @total:=@total+销售值 as 累计
FROM tb DATA, (SELECT @total:=0) _x
ORDER BY 商品,日期
;
-- 各商品单独累计
SELECT DATA.*, @total:=销售值+IF(@sp=商品,@total,0) as 累计,@sp:=商品
FROM tb DATA, (SELECT @total:=0, @sp:=null) _x
ORDER BY 商品,日期
;如果要更新到表,昌把查询做为子查询与要更新的表关联