SQL Server 可以返回临时表的错误顺序吗?



我在生产方面有一个奇怪的问题,我无法在本地开发中重现。请注意,我们有两个基于相同数据库运行的应用程序,但它们返回不同的数据(旧应用程序是正确的)

我有如下一行

UPDATE #ResultTempTable 
SET @@beginningBal = CLoanBal = @@beginningBal + NetChange

这样做的目的是按日期浏览行并计算一段时间内的贷款余额。

我遇到的问题是它从另一侧开始计算。我的临时表按DESC排序,但计算是根据ASC顺序开始的。

有什么明显的东西可能会脱颖而出吗?在测试生产方面,我受到限制。

这是做你想做的事的错误方法。 正确的方法是使用窗口函数:

WITH toupdate as (
SELECT rtt.*,
SUM(NetChange) OVER (ORDER BY ?) as RunningNetChange
FROM #ResultTempTable rtt
)
UPDATE toupdate
SET CLoanBal = @beginningBal + RunningNetChange;

?用于指定表顺序的列。 SQL 表表示无序集,因此需要一列来指定排序。

相关内容

  • 没有找到相关文章

最新更新