我有一个月的每个交易日的销售预算。因此,对于第1天,预算为300,第2天预算为400,然后月初预算为700.我在查询中收到此错误:Incorrect syntax near 'ROWS'.
select
TradingDate
,Budget
,sum(Budget) over (PARTITION BY TradingDate
order by TradingDate asc
ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING),1) AS BudgetMTD
from #4
答案 0 :(得分:2)
您的查询将获取每天金额的总和,以及同一天内的下一个金额(您的分区和排序依据在同一个字段中)。这是允许的,但它意味着三件事之一:
我猜想你想要两件事之一。第一天是第一天的预算与第二天的总和。另一个是累积金额。
您可能每天有多行,并且希望获得当天预算的总和。如果是这种情况,那么您可以使用更简单的公式:
select TradingDate, Budget,
sum(Budget) over (PARTITION BY TradingDate) AS BudgetMTD
from #4
答案 1 :(得分:2)
好的我想出了一个子查询解决方案:
select TradingDate, Budget,
RunningTotal = (select sum(Budget) from #4 s2
where s2.TradingDate<= s1.TradingDate)
from #4 s1
order by s1.TradingDate