J'essaie de calculer un total cumulé sur une table, tout en limitant le nombre de lignes renvoyées par la requête.SQL Server 2012 - Exécution de Total
Ma table ressemble à ceci:
create table TestTable
(
id int,
somedate date,
somevalue int
)
insert into TestTable values
(45, '01/Jan/09', 3),
(23, '08/Jan/09', 5),
(12, '02/Feb/09', 0),
(77, '14/Feb/09', 7),
(39, '20/Feb/09', 34),
(33, '02/Mar/09', 6)
Et je peux obtenir toutes les lignes avec un total cumulé de « valeur » comme ceci:
select id,
somedate,
somevalue,
sum(somevalue) over(order by somedate) as runningtotal
from TestTable
Je veux limiter les résultats retournés à une plage de dates spécifique, tout en ayant le total cumulé calculé à partir du début de la table. Donc, par exemple, je veux toutes les lignes avec une date le ou après 20/Feb/09. Ensuite, je veux que mon jeu de résultats pour ressembler à:
39 20/Feb/09 49
33 02/Mar/09 55
Mais si je fais juste un where somedate > 20/Feb/09
, puis-je obtenir
39 20/Feb/09 34
33 02/Mar/09 40
qui est pas ce que je veux, parce qu'il est le calcul du total en cours seulement dans la fenêtre.
Existe-t-il un moyen d'obtenir ce que je veux?