Рассчитать текущий остаток - PullRequest
0 голосов
/ 17 июня 2020

У меня есть конечный баланс за последний месяц, и я хочу рассчитать текущие балансы за день на основе конечного баланса за последний месяц. То, что я пробовал, ниже

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

Я хочу добавить конечный баланс предыдущего дня к сумме кредита на следующий день, а затем он должен вычесть из суммы дебета, чтобы получить баланс и так далее.

1 Ответ

0 голосов
/ 17 июня 2020

Я думаю, вы суммировали неверное значение. Попробуйте следующее:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...