zoukankan      html  css  js  c++  java
  • 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;

    完事,如有不对的地方请指正。

  • 相关阅读:
    Spring Boot基础
    MyBatis开启二级缓存
    MyBatis逆向工程
    html实现“加入收藏”代码
    vue-router 基本使用
    vue 脚手架安装
    webpack入门 webpack4常见出错之处
    $.ajax()方法详解
    防止网页被嵌套
    H5字符实体参考
  • 原文地址:https://www.cnblogs.com/wangb2/p/12125334.html
Copyright © 2011-2022 走看看