SQL:实现流水账的收入、支出、本期余额
有多组数据,分别是收入,支出,余额,它们的关系是:
本期余额=上次余额+收入-支出
/*
测试数据:
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:实现流水账的收入、支出、本期余额的更多相关文章
- 【SQL】 收入支出求盈亏
求项目ID为1000的盈亏 表名为:T 字段:ID P_ID AMOUNT TYPE(1:收入 2:支出) '
- [SQL]LeetCode181. 超过经理收入的员工 | Employees Earning More Than Their Managers
SQL架构 Create table If Not Exists Employee (Id ), Salary int, ManagerId int) Truncate table Employee ...
- sql 181. 超过经理收入的员工
Employee 表包含所有员工,他们的经理也属于员工.每个员工都有一个 Id,此外还有一列对应员工的经理的 Id. +----+-------+--------+-----------+| Id | ...
- sql基本命令
--------------------------------------------------------SQL基本命令开始----------------------------------- ...
- FFMS SQL文件执行错误
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 b ...
- MicroERP数据初始化SQL脚本
--use MicroERP insert into tbUserGroup(GroupName,Remark) values('管理员组','具备所有权限')insert into tbUser(L ...
- Sql面试常考题(持续添加)
最近萌生换工作的念头,于是上网下载了一些公司的面试题,重新看了面试题中的Sql部分,这些查询题有时候只是兜一个弯角来考,对于给EF惯坏的孩子来说还是有点难度的(给面试官鄙视了几下的结果),所以列出最近 ...
- SQL查询基本用法
-- 单列查询 select 编号 from employees -- 多列查询 select 编号,姓名 from employees -- 查询所有列 select * from employee ...
- echarts3.0 本期累计堆叠
@{ ViewBag.Title = "barlj"; } <h2>barlj</h2> <div id="main" style ...
随机推荐
- 对Ajax的理解
一.Ajax的工作原理: 1. Ajax的机制是:完成异步请求,实现页面的局部刷新. 2. 发送异步请求:通过xmlhttprequest方法. 3. 浏览器向服务器发送异步请求: 服务器接收处理请求 ...
- 第一篇博文,整理一下关于Mac下安装本地LNMP环境的一些坑
安装的主要步骤是按照以下这篇文章进行的http://blog.csdn.net/w670328683/article/details/50628629,但是依然遇到了一些大大小小的坑(一个环境搞了一天 ...
- java 对象 :创建
灵感来自effective java 关于对象,是java的核心,如何有效的创建其实是一个值得关注的地方. 1.静态工厂:这是一个值得关注的,并且应该时刻考虑的方法. 优点:1.他是有名字的,这个是如 ...
- div内容滚动,无缝滚动
function startmarquee(lh, speed, delay) { var t; var oHeight = 373; /** div的高度 **/ ...
- C#拼接SQL语句,SQL Server 2005+,多行多列大数据量情况下,使用ROW_NUMBER实现的高效分页排序
/// <summary>/// 单表(视图)获取分页SQL语句/// </summary>/// <param name="tableName"&g ...
- [翻译]为什么IIS应用程序池回收时间默认被设置为1740分钟?
作者:斯科特 福赛斯/Scott Forsyth日期:2013/04/06地址:http://weblogs.asp.net/owscott/why-is-the-iis-default-app-po ...
- Java语言的安全性的体现
Java语言的安全性的体现 1.严格遵循面向对象的规范.这样封装了数据细节,只提供接口给用户.增加了数据级的安全性. 2.无指针运算.java中的操作,除了基本类型都是引用的操作.引用是不能进行增减运 ...
- noConflict
var _avalon = window.avalon avalon.noConflict = function(deep) { if (deep && window.avalon = ...
- Implement Trie (Prefix Tree)
Trie 树实现 Implement a trie with insert, search, and startsWith methods. class TrieNode { public: // I ...
- 【转】JavaScript获取节点类型、节点名称和节点值
DOM节点信息包括节点类型(nodeType).节点名称(nodeName)和节点值(nodeValue). 节点类型 DOM节点中,每个节点都拥有不同的类型.W3C规范中常用的 DOM节点类型有以下 ...