创建表

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 流水账余额查询相关推荐

  1. java 必备面试必备

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  2. 用友U8出入库流水账查询SQL

    SELECT a.ID,        dDate,        a.AutoID,        (CASE             WHEN a.bRdFlag <> 0 THEN ...

  3. oracle判断非空并拼接,oracle sql 判断字段非空,数据不重复,插入多跳数据

     oracle sql 判断字段非空,数据不重复 select distinct(mobile) from wx_user_mobile where active_time is not null ...

  4. [每天进步一点 -- 流水账]第1周

    2012年12月15日15:15:27 周六 09:00 -- 8点多起床,赖床一小会 10:00 -- 开电脑,看了会网页,写博客流水账系列说明,下载一个倒计时小软件TinyCountdown. 1 ...

  5. 课程设计:基于SQL Server的银行ATM 存取款机系统设计与实现

    目录 前言 一.项目背景 1.项目任务 2.项目技能目标 3.需求概述 4.开发环境 5 .问题分析 (1) 银行存取款业务介绍 (2) 客户信息 (3) 银行卡账户信息 (4) 银行卡交易信息 (5 ...

  6. Xxx饭堂系统 JAVA+SQL+JDBC完成一个小项目(下篇)

    Xxx饭堂系统(下篇) 在上一篇我们已经把系统的基本框架已经搭建完成,接下看来我们的任务就是,吧Daoceng接口的实现类完成以及各功能窗口的实现 功能窗口的搭建 菜单类 /*** 菜单类框架*/ p ...

  7. 2017-java程序媛的流水账-一个程序媛的不断学习

    我曾想过如果由我负责一个项目,我会采用一下技术的组合: 1.项目规模中小型,需求改动较多,对技术有一定追求,同时要求快速 spring boot, spring data jpa(考虑团队成员技术成熟 ...

  8. 面试官:如何快速定位慢SQL

    开启慢查询日志 在项目中我们会经常遇到慢查询,当我们遇到慢查询的时候一般都要开启慢查询日志,并且分析慢查询日志,找到慢sql,然后用explain来分析 系统变量 MySQL和慢查询相关的系统变量如下 ...

  9. 长文】多家大厂春招实习经历汇总,我的春招回忆流水账+面经

    我的春招, 方向是C /Python/后台 ,从2月末开始,到今天,已经基本结束,结果确定收到了依图.字节跳动.腾讯的offer,另有米哈游.网易互娱.招行信用卡中心进行中且有希望,但没有继续的打算了 ...

最新文章

  1. 1380 没有上司的舞会
  2. 下一代编解码标准的抉择
  3. 如何在 SAP UI5 应用中集成第三方库 :一个在移动设备上查看 Web 应用打印调试信息的小技巧
  4. bvp解算器是什么_那些学习了编程的中学生,为什么会更可能成功?
  5. Linux笔记-inode基本概念
  6. 【蓝桥杯单片机(18)】第七届省赛-模拟风控制系统
  7. 计算机无法投影,win10专业版投影失败提示:你的电脑不能投影到其他屏幕的解决办法...
  8. 如何生成dll文件 采用VS2017生成dll文件(动态库文件)和lib文件(静态库文件)以C语言为例
  9. Laravel项目实战中如何快速集成Emoji表情包?Emoji表情包太丰富了
  10. java实现轮播图片_Banner框架实现图片轮播
  11. Pycharm安装后打开提示:此应用无法在你的电脑上运行,若要找到合适于你的电脑的版本,请咨询发布者。
  12. 微信订阅号实现自动赚钱机器人
  13. 幼儿园手工之自制时钟_幼儿园亲子手工之自制时钟玩教具,这样教孩子时间观念效果才明显...
  14. 如何从“零开始”创建自己的 Docker 基础镜像
  15. Welcome To ZOE's Blog
  16. 机器人(ROS)理实融合课程设计与开展
  17. 当今物联网设备的安全问题,现在的物联网就是在裸奔?
  18. 仿QQ空间打赏功能实现
  19. 今天吃什么随机网页_今天吃什么?火锅!火锅食材营养大揭秘!
  20. 第一周总结--------陈聪

热门文章

  1. 函数中的声明和变量的定义
  2. 找不到合适的PPT模板?推荐三款模板素材库给你
  3. LR(0)、SLR、LR、LALR的区别
  4. 林业数字孪生打造实时树木“管家”
  5. win10计算机跑分,Win10使用鲁大师对显卡跑分测试时出现FPS锁在60帧如何解决
  6. 特种光纤丨光谱分析仪用光纤
  7. 腾讯微博qq说说备份导出工具_QQ空间导出助手 – 日志、相册、视频、留言板、QQ 好友列表等...
  8. 在RuoYi-Cloud若依系统的环境部署的建议及总结
  9. 【面试题】【C语言】5位运动员参加跳水比赛,有人让他们预测比赛结果
  10. [原]VC极域电子教室相关功能的实现dll(差不多是“外挂”)