У меня есть таблица # pr
- [dt] - номер операции;
- [pr_id] - идентификатор операции;
- [tranche_in] - сумма получено из каждого транша;
- [cash_out] - расходы.
create table #pr (dt int, pr_id int, tranche_in money, cash_out money)
insert into #pr values
(1,101,334,null)
,(2,104,null,100)
,(3,107,1000,null)
,(4,108,null,null)
,(5,115,null,500)
,(6,118,50,null)
,(7,121,null,600)
,(8,122,930,null)
,(9,125,null,null)
,(10,130,null,120)
Каждый транш имеет идентификатор [tranche_id], например, A, B, C, D
- A: 334
- B: 1000
- С: 50
- D: 930
Первые деньги списывается с самого раннего транша "A" (метод FIFO).
Как создать таблицу типа #tranche_log? Он должен содержать журнал расходов [cash_out] и баланс [tranche_outbal] каждого транша.
create table #tranche_log (
pr_id int, tranche_id nvarchar(1), cash_out money, tranche_outbal money)
insert into #tranche_log values
(101, 'A', null, 334 )
,(104, 'A', 100 , 234 )
,(107, 'A', null, 234 )
,(108, 'A', null, 234 )
,(115, 'A', 234 , 0 )
,(107, 'B', null, 1000)
,(108, 'B', null, 1000)
,(115, 'B', 266 , 734 )
,(118, 'B', null, 734 )
,(121, 'B', 600 , 134 )
,(122, 'B', null, 134 )
,(125, 'B', null, 134 )
,(130, 'B', 120 , 14 )
,(118, 'C', null, 50 )
,(121, 'C', null, 50 )
,(122, 'C', null, 50 )
,(125, 'C', null, 50 )
,(130, 'C', null, 50 )
,(122, 'D', null, 930 )
,(125, 'D', null, 930 )
,(130, 'D', null, 930 )