mysql 累加_mysql累加、累减

累加

先上表结构:

CREATE TABLE `abc` (

`jidu` int(11) NOT NULL AUTO_INCREMENT,

`jine` int(11) DEFAULT NULL,

PRIMARY KEY (`jidu`)

) ENGINE=InnoDB AUTO_INCREMENT=14270 DEFAULT CHARSET=utf8;

数据:

INSERT INTO `abc` (`jidu`, `jine`) VALUES ('1', '100');

INSERT INTO `abc` (`jidu`, `jine`) VALUES ('2', '200');

INSERT INTO `abc` (`jidu`, `jine`) VALUES ('3', '300');

INSERT INTO `abc` (`jidu`, `jine`) VALUES ('4', '300');

想要的结果为季度金额的累加值:

6e47fa247202efe1df4c7d3f8b8a248c.png

这里利用错位自关联来实现,先看关联效果

select * from abc a JOIN abc b ON a.jidu >= b.jidu;

0374c7d04d26416fab9b99fb707ac99a.png

下面就好办了,实现语句为:

select a.jidu,a.jine,sum(b.jine) as leiji

from abc a JOIN abc b ON a.jidu >= b.jidu

GROUP BY a.jidu ORDER BY jidu;

累减

还是上面那个表,要的结果为每季度的金额差额:

14d74453a41574a00cfb4f53f4eaa4d9.png

还是自关联,先看关联效果:

select * from abc a left JOIN abc b ON a.jidu = b.jidu+1 ORDER BY a.jidu;

f2e2472769084d5a3c279791882d2a6c.png

实现的sql:

select a.jidu,a.jine,ifnull(a.jine-b.jine,a.jine) as cha

from abc a left JOIN abc b ON a.jidu = b.jidu+1 ORDER BY a.jidu;

这就是微学网-程序员之家为你提供的"mysql累加、累减"希望对你有所帮助.本文来自网络,转载请注明出处:http://www.weixuecn.cn/article/7924.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值