-
sql语句大全之mssql sqlerver 脚本 计算数据表的结余
转自:http://www.maomao365.com/?p=5710
摘要:
今天接到一个需求,有一张数据表,记录的是消费明细数据,
现在需要做一个累计结余,记录每次的数据结余合计,
下文将展示一种sql脚本的编写方式
实验环境:sqlserver 2008 R2
如下例所示:
detail表 记帐流水表 ========== 字段: qt_srMoney (money) 收入 qt_zcMoney (money) 支出 qt_date (datetime) 操作日期 qt_dkfs (nvarchar) 打款方式 ------------------ 需获取一个带结余的数据信息 ========== 根据期初表中的日期和金额,查询出记帐表中的结余。 帐面结余 =期初金额+收入-支出 实验环境:sql server 2008 R2 */ create table detail(qt_srMoney money, qt_zcMoney money, qt_date datetime, qt_dkfs nvarchar(100)) insert into detail values(100,0,'2018-1-2 10:00:00','other') insert into detail values(0,10,'2018-2-2 10:00:00','other') insert into detail values(0,20,'2018-3-2 10:00:00','other') insert into detail values(30,0,'2018-4-2 10:00:00','other') insert into detail values(10,60,'2018-5-2 10:00:00','other') go declare @datestart datetime ---开始计算日期 set @datestart ='2018-2-1' declare @qcomney money --期初 set @qcomney =100 select t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney,sum(t2.qt_srMoney-t2.qt_zcMoney)+@qcomney from detail t1,detail t2 where t1.qt_date>=t2.qt_date and t1.qt_date >=@datestart group by t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney order by t1.qt_date; go ---避免日期出现两条导致结余数据计算异常----- declare @datestart datetime ---开始计算日期 set @datestart ='2018-2-1' declare @qcomney money --期初 set @qcomney =100 with cteName as ( select qt_srMoney,qt_zcMoney,qt_date,qt_dkfs, row_number() over ( order by qt_date) as keyID from detail where qt_date >=@datestart ) select t1.keyId,t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney,sum(t2.qt_srMoney-t2.qt_zcMoney)+@qcomney from cteName t1,cteName t2 where t1.keyId>=t2.keyId group by t1.qt_date,t1.qt_dkfs,t1.qt_srMoney,t1.qt_zcMoney,t1.keyId order by t1.keyId; go truncate table detail drop table detail
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式