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;

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

原文地址:https://www.cnblogs.com/wangb2/p/12125334.html

时间: 2024-10-19 02:32:24

mysql累加、累减的相关文章

mysql 累加排序求名次

自己做的一个小项目里需要用mysql计算一些信息. mysql中的 表如下(注:表中数据都是测试数据,随机生成的) mysql> select * from shake_log; +-----+-------------+--------+---------------------+------+ | id | mobile | credit | time | type | +-----+-------------+--------+---------------------+------+ |

mysql日期加减<转>

1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加1小时 select date_add(@dt, interval 1 minute); - 加1分钟 select date_add(@dt, interval 1 second); -加1秒 select date_add(@d

mysql日期加减

1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加1小时 select date_add(@dt, interval 1 minute); - 加1分钟 select date_add(@dt, interval 1 second); -加1秒 select date_add(@d

mysql日期加减运算

MySQL 日期类型MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------  ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~

mysql时间相减的问题

MySQL中时间不能直接相减,如果日.分.时不同,相减结果是错误的 mysql> select t1,t2,t2-t1 from mytest; +---------------------+---------------------+-------+ | t1                  | t2                  | t2-t1 | +---------------------+---------------------+-------+ | 2013-04-21 16

mysql 日期加减天数

MySQL 为日期增加一个时间间隔:date_add() now()       //now函数为获取当前时间 select date_add(now(), interval 1 day); - 加1天 select date_add(now(), interval 1 hour); -加1小时 select date_add(now(), interval 1 minute); - 加1分钟 select date_add(now(), interval 1 second); -加1秒 sel

mysql 时间向减写法

select *  from  ( select  c.OrderNumber , c.Name as equipmentName, a.*, d.Starttime, d.Endtime, ( select datediff(d.Starttime, d.Endtime)) as Lev  , case ( select datediff(d.Starttime, d.Endtime)) when ( select datediff(d.Starttime, d.Endtime)) <=10 

ThinkPHP查询数据与CURD

一.创建连接 在配置文件中使用如下配置: //mysql 定义 /* 'db_type' => 'mysql', 'db_host' => 'localhost', 'db_user' => 'root', 'db_pwd' => '', 'db_port' => 3306, 'db_name' => 'test', */ //PDO专用定义 //PDO连接方式 'DB_TYPE' => 'mysql', // 数据库类型 'DB_USER' => 'roo

QT OpenGL中文教程在QT4版本后的错误代码更改(一)

由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有不好的地方,就是我去看的时候,根本就下载不了代码~~~~可能我人品比较差吧.可以作为参考看一下. 所以选择了下面这个教程: 教程地址:QT OpenGL中文教程(http://www.qiliang.net/old/nehe_qt/index.html) 正在学习这个教程,但发现其时间过久: 根据Q