有多组数据,分别是收入,支出,余额,它们的关系是:
本期余额=上次余额+收入-支出

/*
测试数据:
Create Table tbl([日期] smalldatetime,[收入] int ,[支出] int) Insert Into tbl
SELECT '2004-02-11', 60, 45
union SELECT '2004-10-01',60, 45
union SELECT '2004-10-02',40, 50
union SELECT '2004-10-15',50, 40
union SELECT '2004-10-16',10, null
union SELECT '2004-10-19',10, 0
union SELECT '2004-10-30',0, 10
*/
--select *,(select sum(收入-支出) from 表 where 你的表的主键<=tem.你的表的主键) 本次余额 from 表 tem 

select t.日期,t.收入,t.支出,(select sum(ISNULL(收入, ))-sum(ISNULL(支出, )) from tbl where 日期 <= t.日期) as 本期余额
from tbl t order by 日期 desc

SQL:实现流水账的收入、支出、本期余额的更多相关文章

  1. 【SQL】 收入支出求盈亏

    求项目ID为1000的盈亏 表名为:T 字段:ID    P_ID   AMOUNT   TYPE(1:收入 2:支出) '

  2. [SQL]LeetCode181. 超过经理收入的员工 | Employees Earning More Than Their Managers

    SQL架构 Create table If Not Exists Employee (Id ), Salary int, ManagerId int) Truncate table Employee ...

  3. sql 181. 超过经理收入的员工

    Employee 表包含所有员工,他们的经理也属于员工.每个员工都有一个 Id,此外还有一列对应员工的经理的 Id. +----+-------+--------+-----------+| Id | ...

  4. sql基本命令

    --------------------------------------------------------SQL基本命令开始----------------------------------- ...

  5. FFMS SQL文件执行错误

    [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 b ...

  6. MicroERP数据初始化SQL脚本

    --use MicroERP insert into tbUserGroup(GroupName,Remark) values('管理员组','具备所有权限')insert into tbUser(L ...

  7. Sql面试常考题(持续添加)

    最近萌生换工作的念头,于是上网下载了一些公司的面试题,重新看了面试题中的Sql部分,这些查询题有时候只是兜一个弯角来考,对于给EF惯坏的孩子来说还是有点难度的(给面试官鄙视了几下的结果),所以列出最近 ...

  8. SQL查询基本用法

    -- 单列查询 select 编号 from employees -- 多列查询 select 编号,姓名 from employees -- 查询所有列 select * from employee ...

  9. echarts3.0 本期累计堆叠

    @{ ViewBag.Title = "barlj"; } <h2>barlj</h2> <div id="main" style ...

随机推荐

  1. Java多线程(转)

    文章转自http://286.iteye.com/blog/2292038 谢谢博主的总结! 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位, ...

  2. flash 居中问题

    如果舞台是1000的宽度,要剧中比较容易 mc1.x = (1000-400)/2; 这样就居中了,来看原理,首先我们要舞台居中,很容易就想到一个数字 1000/2 结果是500 但是x对舞台的中央是 ...

  3. 关于IIS服务器证书续订

    输入办证机构+服务器名或IP 办证机构可以通过certsrv.msc来查看 输入完后点完成

  4. extjs组件添加事件监听的三种方式

    extjs对组件添加监听的三种方式  在定义组件的配置时设置 如代码中所示:  Java代码  xtype : 'textarea',  name : 'dataSetField',  labelSe ...

  5. android studio sdk 配置

    android studio在启动后会一直处于 fetching Android sdk compoment information 状态 解决办法: 按照网友提供的方法: 第一步: 1)进入刚安装的 ...

  6. ab中文手册

    名兒 NAME ab - Apache HTTP 服務器性能測試工具 總覽 SYNOPSIS ab  [  -A  auth-username:password  ] [ -c concurrency ...

  7. js跳转传递参数

    额,利用j获取了GridView中选中行数据后,通过JavaScript做跳转,传递参数的时候发现,当参数有中文的时候就会乱码, 当然出现这种情况的时候就需要对跳转的url进行编码 var urlX ...

  8. 启动odoo-10.0成功,但是访问时出错

    启动odoo-10.0显示成功 2017-01-05 06:49:48,211 532 INFO ? odoo: Odoo version 10.02017-01-05 06:49:48,211 53 ...

  9. Git分支管理

    一.Git分支的使用 查看分支: git branch 创建分支: git branch branch1 切换到branch1 git checkout branch1 再用git branch查看, ...

  10. Linux crontab命令格式与详情例子

    基本格式 : * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 第4列表示 ...