SQL 流水账余额查询
创建表
CREATE TABLE [dbo].[test]([id] [int] IDENTITY(1,1) NOT NULL,[RQ] [date] NULL,[SR] [int] NULL,[ZC] [int] NULL ) ON [PRIMARY]
插入数据
INSERT INTO [dbo].[test]([RQ],[SR],[ZC]) VALUES('2017-10-01 00:00:00',30,NULL); INSERT INTO [dbo].[test]([RQ],[SR],[ZC]) VALUES('2017-10-02 00:00:00',NULL,20); INSERT INTO [dbo].[test]([RQ],[SR],[ZC]) VALUES('2017-10-03 00:00:00',20,NULL); INSERT INTO [dbo].[test]([RQ],[SR],[ZC]) VALUES('2017-10-04 00:00:00',NULL,10); INSERT INTO [dbo].[test]([RQ],[SR],[ZC]) VALUES('2017-10-06 00:00:00',40,NULL);
日期字段不重复
DECLARE @starDate DATE DECLARE @endDate DATE SET @starDate = '2017-10-02' SET @endDate = '2017-10-07'SELECT '期初' AS 日期, ISNULL(SUM(SR), '-') AS 收入, ISNULL(SUM(ZC), '-') AS 支出, ISNULL(SUM(SR) -SUM(ZC), '-') AS 余额 FROM test WHERE RQ < @starDate UNION ALL SELECT CAST(t.RQ AS NVARCHAR), ISNULL(t.SR, 0), ISNULL(t.ZC, 0), ISNULL((SELECT SUM(t2.SR) -SUM(t2.ZC)FROM test AS t2WHERE t2.RQ <= t.RQ),0) FROM test AS t WHERE t.RQ >= @starDate AND t.RQ <= @endDate UNION ALL SELECT '合计', SUM(SR)SR, SUM(ZC)ZC, SUM(SR) -SUM(ZC) FROM test
日期不唯一, 用自增字段来区分:
DECLARE @starDate DATE DECLARE @endDate DATE SET @starDate = '2017-10-02' SET @endDate = '2017-10-07'SELECT CAST('期初' AS VARCHAR) AS 序号,'' AS 日期, ISNULL(SUM(SR), '-') AS 收入, ISNULL(SUM(ZC), '-') AS 支出, ISNULL(SUM(SR) -SUM(ZC), '-') AS 余额 FROM test WHERE RQ < @starDate UNION ALL SELECT CAST(t.ID AS VARCHAR),CAST(t.RQ AS NVARCHAR), ISNULL(t.SR, 0), ISNULL(t.ZC, 0), ISNULL((SELECT SUM(t2.SR) -SUM(t2.ZC)FROM test AS t2WHERE t2.id <= t.id),0) FROM test AS t WHERE t.RQ >= @starDate AND t.RQ <= @endDate UNION ALL SELECT '合计','', SUM(SR)SR, SUM(ZC)ZC, SUM(SR) -SUM(ZC)
转载于:https://www.cnblogs.com/win32pro/p/7748604.html
SQL 流水账余额查询相关推荐
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- 用友U8出入库流水账查询SQL
SELECT a.ID, dDate, a.AutoID, (CASE WHEN a.bRdFlag <> 0 THEN ...
- oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据
oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...
- [每天进步一点 -- 流水账]第1周
2012年12月15日15:15:27 周六 09:00 -- 8点多起床,赖床一小会 10:00 -- 开电脑,看了会网页,写博客流水账系列说明,下载一个倒计时小软件TinyCountdown. 1 ...
- 课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现
目录 前言 一.项目背景 1.项目任务 2.项目技能目标 3.需求概述 4.开发环境 5 .问题分析 (1) 银行存取款业务介绍 (2) 客户信息 (3) 银行卡账户信息 (4) 银行卡交易信息 (5 ...
- Xxx饭堂系统 JAVA+SQL+JDBC完成一个小项目(下篇)
Xxx饭堂系统(下篇) 在上一篇我们已经把系统的基本框架已经搭建完成,接下看来我们的任务就是,吧Daoceng接口的实现类完成以及各功能窗口的实现 功能窗口的搭建 菜单类 /*** 菜单类框架*/ p ...
- 2017-java程序媛的流水账-一个程序媛的不断学习
我曾想过如果由我负责一个项目,我会采用一下技术的组合: 1.项目规模中小型,需求改动较多,对技术有一定追求,同时要求快速 spring boot, spring data jpa(考虑团队成员技术成熟 ...
- 面试官:如何快速定位慢SQL
开启慢查询日志 在项目中我们会经常遇到慢查询,当我们遇到慢查询的时候一般都要开启慢查询日志,并且分析慢查询日志,找到慢sql,然后用explain来分析 系统变量 MySQL和慢查询相关的系统变量如下 ...
- 长文】多家大厂春招实习经历汇总,我的春招回忆流水账+面经
我的春招, 方向是C /Python/后台 ,从2月末开始,到今天,已经基本结束,结果确定收到了依图.字节跳动.腾讯的offer,另有米哈游.网易互娱.招行信用卡中心进行中且有希望,但没有继续的打算了 ...
最新文章
- 1380 没有上司的舞会
- 下一代编解码标准的抉择
- 如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
- bvp解算器是什么_那些学习了编程的中学生,为什么会更可能成功?
- Linux笔记-inode基本概念
- 【蓝桥杯单片机(18)】第七届省赛-模拟风控制系统
- 计算机无法投影,win10专业版投影失败提示:你的电脑不能投影到其他屏幕的解决办法...
- 如何生成dll文件 采用VS2017生成dll文件(动态库文件)和lib文件(静态库文件)以C语言为例
- Laravel项目实战中如何快速集成Emoji表情包?Emoji表情包太丰富了
- java实现轮播图片_Banner框架实现图片轮播
- Pycharm安装后打开提示:此应用无法在你的电脑上运行,若要找到合适于你的电脑的版本,请咨询发布者。
- 微信订阅号实现自动赚钱机器人
- 幼儿园手工之自制时钟_幼儿园亲子手工之自制时钟玩教具,这样教孩子时间观念效果才明显...
- 如何从“零开始”创建自己的 Docker 基础镜像
- Welcome To ZOE's Blog
- 机器人(ROS)理实融合课程设计与开展
- 当今物联网设备的安全问题,现在的物联网就是在裸奔?
- 仿QQ空间打赏功能实现
- 今天吃什么随机网页_今天吃什么?火锅!火锅食材营养大揭秘!
- 第一周总结--------陈聪
热门文章
- 函数中的声明和变量的定义
- 找不到合适的PPT模板?推荐三款模板素材库给你
- LR(0)、SLR、LR、LALR的区别
- 林业数字孪生打造实时树木“管家”
- win10计算机跑分,Win10使用鲁大师对显卡跑分测试时出现FPS锁在60帧如何解决
- 特种光纤丨光谱分析仪用光纤
- 腾讯微博qq说说备份导出工具_QQ空间导出助手 – 日志、相册、视频、留言板、QQ 好友列表等...
- 在RuoYi-Cloud若依系统的环境部署的建议及总结
- 【面试题】【C语言】5位运动员参加跳水比赛,有人让他们预测比赛结果
- [原]VC极域电子教室相关功能的实现dll(差不多是“外挂”)