+----------+---------------+--------+-----------+ | Year | Cases | Closed | State | +----------+---------------+--------+-----------+ | 2016 | 250 | 0 | 250 | | 2017 | 350 | 370 | 230 | | 2018 | 330 | 490 | 70 | | 2019 | 60 | 50 | 80 | +----------+---------------+--------+-----------+
3 Réponses :
Utilisez des sommes cumulatives: i trouver état code> pour être un nom curieux pour une somme cumulative. p> p>
Vous voulez la fonction de fenêtre:
select t.*, t1.state from table t cross apply (select sum(t1.cases - t1.closed) as state from table t1 where t1.yr <= t.yr ) t1;
Son très simple à faire, essayez le code ci-dessous:
select *, sum(cases - closed) over (order by year) as [state] from StackOverFlow_4