mysql累加、累減

累加sql

先上表結構:
spa

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;

數據:3d

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');

想要的結果爲季度金額的累加值:code

 

 

 

這裏利用錯位自關聯來實現,先看關聯效果blog

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

 

 

 下面就好辦了,實現語句爲:class

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;

 

累減select

仍是上面那個表,要的結果爲每季度的金額差額:im

 

 

 仍是自關聯,先看關聯效果:數據

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

 

 實現的sql:db

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;

完事,若有不對的地方請指正。

相關文章
相關標籤/搜索