首页 > 数据库 >mysql 查询生成对账单 当前数据为上条数据累计

mysql 查询生成对账单 当前数据为上条数据累计

时间:2022-10-09 18:33:07浏览次数:45  
标签:CASE END 账单 money tradetypecode WHEN ELSE mysql 上条

需求

思路:期初数据做个对账开始时间之前的数据,查询时以时间为排序条件查询

  1. 分别做出 收款 核销 期初 等基础数据
SELECT
	billdate,
CASE
	
	WHEN tradetypecode = 'D2' THEN
	'收款单' 
	WHEN tradetypecode = 'F2-Cxx-001' THEN
	'余额预收单' 
	WHEN tradetypecode = 'A0' THEN
	'期初' 
	END tradetypecode,
	billno,
	businame,
	remark,
	customercode,
CASE
		
		WHEN tradetypecode = 'D2' THEN
		money ELSE 0 
	END gather,
CASE
		
		WHEN tradetypecode = 'F2-Cxx-001' THEN
		money ELSE 0 
	END verification,
CASE
		
		WHEN tradetypecode = 'A0' THEN
		money ELSE 0 
	END beginning 
FROM
	teamwork_verify_gather 
WHERE
	customercode = 'P0680102' 
ORDER BY
	billdate ASC,
	tradetypecode DESC 

  1. 增加余额字段
SELECT
	*,
	@total := ( beginning + @total + gather - verification ) AS 'balance' 
FROM
	(
SELECT
	billdate,
CASE
	
	WHEN tradetypecode = 'D2' THEN
	'收款单' 
	WHEN tradetypecode = 'F2-Cxx-001' THEN
	'余额预收单' 
	WHEN tradetypecode = 'A0' THEN
	'期初' 
	END tradetypecode,
	billno,
	businame,
	remark,
	customercode,
CASE
		
		WHEN tradetypecode = 'D2' THEN
		money ELSE 0 
	END gather,
CASE
		
		WHEN tradetypecode = 'F2-Cxx-001' THEN
		money ELSE 0 
	END verification,
CASE
		
		WHEN tradetypecode = 'A0' THEN
		money ELSE 0 
	END beginning 
FROM
	teamwork_verify_gather 
WHERE
	customercode = 'P0680102' 
ORDER BY
	billdate ASC,
	tradetypecode DESC 
	) AS bb,
	( SELECT @total := 0 ) AS T1

  1. 解决分页问题
SELECT
	* 
FROM
	(
SELECT
	*,
	@total := ( beginning + @total + gather - verification ) AS 'balance' 
FROM
	(
SELECT
	billdate,
CASE
	
	WHEN tradetypecode = 'D2' THEN
	'收款单' 
	WHEN tradetypecode = 'F2-Cxx-001' THEN
	'余额预收单' 
	WHEN tradetypecode = 'A0' THEN
	'期初' 
	END tradetypecode,
	billno,
	businame,
	remark,
	customercode,
CASE
		
		WHEN tradetypecode = 'D2' THEN
		money ELSE 0 
	END gather,
CASE
		
		WHEN tradetypecode = 'F2-Cxx-001' THEN
		money ELSE 0 
	END verification,
CASE
		
		WHEN tradetypecode = 'A0' THEN
		money ELSE 0 
	END beginning 
FROM
	teamwork_verify_gather 
WHERE
	customercode = 'P0680102' 
ORDER BY
	billdate ASC,
	tradetypecode DESC 
	) AS bb,
	( SELECT @total := 0 ) AS T1 
	) AS cc 
LIMIT 1,1

查询条件及其它字段自定义

标签:CASE,END,账单,money,tradetypecode,WHEN,ELSE,mysql,上条
From: https://www.cnblogs.com/fuqian/p/16773230.html

相关文章

  • mysql5.7开启慢查询日志找出哪些sql查询慢
    因为慢查询日志等....日志都是耗性能及空间的,所以这里我只是临时开启连接上mysql,执行以下sqlshowvariableslike"%slow_query_log%";--查看慢查询相关变量setglob......
  • mysql中锁的分类
    1.按照锁的粒度分类:行级锁(Innodb)(记录锁,间隙锁,临键锁),页级锁(Innodb,MyIsam),表级锁(Innodb)2.按照锁的属性分类:共享锁(读锁),排他锁(写锁)3.按照锁的状态分类:意向共享锁,意向排他锁行......
  • SpringBoot实现Mysql读写分离
    前言在高并发的场景中,关于数据库都有哪些优化的手段?常用的有以下的实现方法:读写分离、加缓存、主从架构集群、分库分表等,在互联网应用中,大部分都是读多写少的场景,设置......
  • Mysql 插入中文错误:Incorrect string value: '\xE7\xA8\x8B\xE5\xBA\x8F...' fo
     今天mysql遇到了一点问题。 首先我说一下,mysql安装的话默认编码方式是拉丁文。不是 UTF-8. 这个错误原因就是因为编码格式不一致造成的。  简单粗暴一点,重新建一个......
  • MySQL慢查询优化
    日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因?今天就跟大家聊聊导致数据库慢查询的12个常见原因,以及对应的解决方法。   1.SQL......
  • 【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结
    一、概述在实际开发中,大部分情况下都不是在单表中进行数据操作,一般都是多张表进行联合查询。通常一个业务就会对应的有好几张表。MySql中的连接查询分为交叉连接,内连......
  • MySQL的下载与安装
    ......
  • 解决mysql 1449 问题
    现象:数据库可以连接,重启也正常启动。但查询数据库时,就是报下面的错误报错:Theuserspecifiedasadefiner(‘mysql.infoschema’@‘localhost’)doesnotexists查看m......
  • 测试基础学习 - mysql
    mysql介绍MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度......
  • Python中使用Mysql(编码实践)
    文档或者看源码​​http://mysql-python.sourceforge.net/MySQLdb-1.2.2/public/MySQLdb-module.html​​开篇在上一篇Python中使用Mysql(安装篇)中,我们为Python安装了支持My......