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 t2
WHERE 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 t2
WHERE 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)

SQL 流水账余额查询的更多相关文章
- SQL:实现流水账的收入、支出、本期余额
有多组数据,分别是收入,支出,余额,它们的关系是:本期余额=上次余额+收入-支出 /* 测试数据: Create Table tbl([日期] smalldatetime,[收入] int ,[支出] ...
- 2014 Hangjs 见闻流水账第一天
前言 6月21日~6月22日, 第一次跑远门去参加一个大会(广州 -> 杭州),本来打算,在火车的回来的路上,把这两天的东西记录一下,不过,火车上的环境实在恶劣,同时也高估了自己的专注力,所以, ...
- SQLSERVER图片查看工具SQL Image Viewer5.5.0.156
原文:SQLSERVER图片查看工具SQL Image Viewer5.5.0.156 SQLSERVER图片查看工具SQL Image Viewer5.5.0.156 在2013年某一次北京SQL ...
- FFMS SQL文件执行错误
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 b ...
- 信安周报-第02周:SQL基础
信安之路 第02周 Code:https://github.com/lotapp/BaseCode/tree/master/safe 前言 本周需要自行研究学习的任务贴一下: 1.概念(推荐) 数据库 ...
- SQL SERVER数据库基本语法汇总,仅代表个人整理,仅供参考
以下SQL基本语法皆由本人整理,以下做一个汇总,关于游标,可作为了解,不要求掌握,其他查询.修改.删除操作等基本语法必须会使用.select * from [dbo].[TBICJE]select m ...
- 最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目
最近帮客户实施的基于SQL Server AlwaysOn跨机房切换项目 最近一个来自重庆的客户找到走起君,客户的业务是做移动互联网支付,是微信支付收单渠道合作伙伴,数据库里存储的是支付流水和交易流水 ...
- SQL Server 大数据搬迁之文件组备份还原实战
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 解决方案(Solution) 搬迁步骤(Procedure) 搬迁脚本(SQL Codes) ...
- Sql Server系列:分区表操作
1. 分区表简介 分区表在逻辑上是一个表,而物理上是多个表.从用户角度来看,分区表和普通表是一样的.使用分区表的主要目的是为改善大型表以及具有多个访问模式的表的可伸缩性和可管理性. 分区表是把数据按设 ...
随机推荐
- duilib进阶教程 -- XML嵌套及自定义控件 (4)
代码下载:http://download.csdn.net/detail/qq316293804/6433937 之前入门教程里已经讲过了自定义控件,这里借着迅雷播放器再次举个例子. 1.我们先给迅雷 ...
- 多密钥ssh-key生成与管理
由于 git 大文件用 http 方式难以传输,必须使用 ssh-key,而 ssh-key 又生成了好多个.最近在各种折腾 ssh,公钥私钥上花费了很多时间,现将一些问题总结如下.系统为 Mac/L ...
- python日志,一个改版SMTPHandler
1.官方logging包的SMTPHandler不支持ssl的邮箱,修改成兼容ssl以支持大部分国内邮箱. 2.增加一个频率控制的参数,比如要设置一个报警邮件,异常时候通知我们,但假设1分钟内异常几千 ...
- ubuntu 创建swap分区
通常,Linux系统中swap分区可以通过两种方式指定,分别为:一.在磁盘分区的时候格式化一个swap分区:二.在文件系统中创建一个swap文件作为swap分区.此文主要介绍第二种方式.步骤如下: 1 ...
- c __cplusplus详解
Code:#ifdef __cplusplusextern "C" { #endif ... #ifdef __cplusplus} #endif 解释:1.c++中定义了__cp ...
- SpringBoot切换Tomcat容器,SpringBoot使用Jetty容器
SpringBoot切换Tomcat容器, SpringBoot修改为Jetty容器, SpringBoot使用undertow容器, SpringBoot使用Jetty容器 ============ ...
- ScrollView fillViewport
话不多说直接上图
- linux下WEB服务器安装、配置VSFTP
转载 http://www.oicto.com/centos-vsftp/?tdsourcetag=s_pcqq_aiomsg linux下WEB服务器安装.配置VSFTP 由 admin · 发布 ...
- [原]NTP时间服务器简单设置
====server edit /etc/ntp.conf 添加 server 127.127.1.0 fudge 127.127.1.0 stratum 1 fudge 127.127.1.0 ...
- fyzcms---相关文章推荐功能
在用我写的fyzcms的做优化的时候,考虑到文章之间的权重集中,以及相互文章间的低耦合,所以设计了一个相关文章推荐的功能. 具体使用: <if condition="count($fi ...