在一段时间内为财务数据库中的"当前余额"创建缺失值



我有一种情况,我有一组账户,随着时间的推移,会根据这些账户输入日记账分录:

帐户
A
B
C
D

一种方法是使用交叉连接来获取丢失的行。(底部的DB Fiddle(

交叉联接将生成一个集合,其中每个帐户都有来自日记账的每个日期
然后我们可以在日记账上再次联接以检索其他列

declare @Account table (Account varchar(10))
declare @Journal table (JournalDate date, Account varchar(10), Change int)
insert into @Account values ('A'), ('B'), ('C'), ('D')
insert into @Journal values ('20220101', 'A', 10), ('20220101', 'B', 20), ('20220101', 'C', 0), ('20220101', 'D', 0), 
('20220102', 'A', 70), ('20220103', 'A', 40), ('20220103', 'D', 100), ('20220104', 'C', 25)

select jc.JournalDate,
a.Account,
j.Change
from   @Account a
cross join (select distinct j.JournalDate from @Journal j) jc
left join @Journal j on jc.JournalDate = j.JournalDate and a.Account = j.Account

结果是

更改
JournalDate账户
2022-01-01A10
2022-01-01B20
2022-01-01C0
2022-01-01D0
2022-01-02A70
2022-01-02B
2022-01-02C
2022-01-02D
2022-01-03A40
2022-01-03B
2022-01-03C
2022-01-03D100
2022-01-04A
2022-01-04B
2022-01-04C25
2022-01-04D

最新更新