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

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

 

 

 

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

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

 

 

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

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 * from abc a left JOIN abc b ON a.jidu = b.jidu+1 ORDER BY a.jidu;

 

 實現的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;

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM