Blockchain is a technology that underpins the success of Bitcoin and other digital currencies, but it has uses far beyond finance. Learn how blockchain works and why it is proving disruptive to other areas of IT.
create table DimDate ( DateKey int not null, constraint PK_Date primary key clustered (DateKey) ); go insert into DimDate values (20130601), (20130602), (20130603), (20130604), (20130605), (20130606), (20130607), (20130608), (20130609), (20130610); go create table DimAccount ( AccountKey int not null, constraint PK_Account primary key clustered (AccountKey) ); go insert into DimAccount values (1), (2); go create table FactBalanceChange ( DateKey int not null, AccountKey int not null, Balance money not null, constraint PK_BalanceChange primary key clustered (DateKey, AccountKey), constraint FK_BalanceChange_DateKey foreign key (DateKey) references DimDate(DateKey), constraint FK_BalanceChange_AccountKey foreign key (AccountKey) references DimAccount(AccountKey) ); go insert into FactBalanceChange values (20130601, 1, 10.00), (20130601, 2, 10.00), (20130604, 1, 5.00), (20130607, 2, 5.00), (20130609, 1, 4.00), (20130609, 2, 4.00); go create view FactBalanceSnapshot as select d.DateKey, a.AccountKey, coalesce(c.Balance, lag(c.Balance, 1) over (partition by a.AccountKey order by d.DateKey)) as Balance from DimDate d cross join DimAccount a left outer join FactBalanceChange c on d.DateKey = c.DateKey and a.AccountKey = c.AccountKey; go select * from FactBalanceSnapshot.
Add your voice to the tech community where 5M+ people just like you are talking about what matters.
Join the community of 500,000 technology professionals and ask your questions.