【问题标题】:Using "Update to a local variable" to calculate Grouped Running Totals使用“更新到局部变量”计算分组运行总计
【发布时间】:2012-10-02 21:18:45
【问题描述】:

由于它似乎是禁食方法,我正在尝试使用“更新到局部变量”方法来计算 SQL 中的运行总计。要为此添加一个额外的层,我对能够对运行总计进行分组很感兴趣,但是我不知道在哪里对我的查询进行调整以执行此操作(或者是否甚至可以使用此方法) .我们将不胜感激。

以下是我用来创建查询的代码,以及最初引导我使用此方法的文章。如何修改查询以重置每个 daycount

的运行总数

http://geekswithblogs.net/Rhames/archive/2008/10/28/calculating-running-totals-in-sql-server-2005---the-optimal.aspx

DECLARE @SalesTbl TABLE (DayCount smallint, Sales money, RunningTotal money)

DECLARE @RunningTotal money

SET @RunningTotal = 0

INSERT INTO @SalesTbl 
SELECT DayCount, Sales, null
FROM Sales
ORDER BY DayCount

UPDATE @SalesTbl
SET @RunningTotal = RunningTotal = @RunningTotal + Sales
FROM @SalesTbl

SELECT * FROM @SalesTbl

谢谢

赖利

【问题讨论】:

标签: sql grouping cumulative-sum


【解决方案1】:

cmets 中的链接使我能够提出正确的编码。下面是上面例子中更新函数需要修改成按天分组的方法。

UPDATE @salestbl
SET @RunningTotal = RunningTotal = sales +
    CASE WHEN daycount=@lastday THEN @RunningTotal ELSE 0 END
   ,@lastday=daycount
FROM @salestbl

【讨论】:

    猜你喜欢
    • 2012-01-13
    • 2022-01-27
    • 2017-03-18
    • 2019-10-27
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多