sql-server - 计算运行总余额
问题描述
我有上个月的期末余额,我想根据上个月的期末余额计算每天的流动余额。我尝试的是下面
DECLARE @TestTable TABLE
(
id int,
somedate date,
Credit INT,
Debit INT
)
DECLARE @LastMothClosing INT=2000
insert into @TestTable values
(1, '01/Jan/20', 1000,100),
(2, '02/Jan/20', 0,0),
(3, '03/Jan/20', 500,500),
(4, '04/Jan/20', 1000,200),
(5, '05/Jan/20', 100,50)
select id,
somedate,
Credit,
Debit,
(Credit-Debit)+ (SUM(@LastMothClosing) over(order by somedate rows unbounded preceding)) as runningtotal
from @TestTable
我想将前一天的期末余额添加到第二天的贷方金额中,然后它应该从借方金额中减去以获得余额等等。
解决方案
我认为你总结了错误的价值。尝试以下操作:
select id
, SomeDate
, Credit
, Debit
, @LastMothClosing + sum(Credit-Debit) over (order by somedate rows unbounded preceding) as RunningTotal
from @TestTable;
这使:
id SomeDate Credit Debit RunningTotal
--------------------------------------------
1 2020-01-01 1000 100 2900
2 2020-01-02 0 0 2900
3 2020-01-03 500 500 2900
4 2020-01-04 1000 200 3700
5 2020-01-05 100 50 3750
推荐阅读
- java - IntelliJ - 为什么我不能运行某些课程?
- flutter - Flutter 包 Google_nav_bar - 3 个选项卡而不是 4 个
- r - R:检查软件包的哪个分支安装了 install_git
- google-chrome - 复制谷歌表格和谷歌幻灯片的链接
- sql - 如何将动态值传递给雪花查询?
- php - Symfony 使用 Composer 安装失败(定义没有类)(cocorico app)
- haskell - 如何配置 Cabal 以构建两个可执行文件?
- swift - 在 UILabel 中插入多个图像
- python - 在python中实现留一交叉验证
- node.js - 如何使用 axios.all 捕获所有承诺?