求教关于利用存储过程在查询里进行计算的问题。。

Zkleset 2018-02-01 10:43:03
比如一张表 有一个商品每月的销售情况
肥皂 201801 50
肥皂 201802 31
肥皂 201803 33
肥皂 201804 0
.。。。
肥皂 201811 1
肥皂 201812 21

现在需要你计算出一个新值 是这一年每月的累积销量
肥皂 201801 50
肥皂 201802 81
肥皂 201803 114
肥皂 201804 114

如何用查询的方式得出结果
还要用到存储过程。。。
我想了很多方法但是越用越复杂
...全文
632 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 2018-02-02
  • 打赏
  • 举报
回复
如果只是查询
-- 全部累计
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 商品,日期
;
如果要更新到表,昌把查询做为子查询与要更新的表关联
深圳phper 2018-02-02
  • 打赏
  • 举报
回复
存储过程,只需要把这个sql语句加入到出错过程里面就好了
深圳phper 2018-02-02
  • 打赏
  • 举报
回复
表有id字段的对吧 参考了之前大神给我的解决方案 http://bbs.csdn.net/topics/392315964

update demo表 set total_cost=(select sum(cost) from(select * from demo表) b where b.日期>demo表.日期);

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧