How to re-use value from a row to a specific row in a result set [-TSQL] [重复]

问题描述 投票:0回答:1

Microsoft SQL Server (T-SQL):

我有一个包含当前价格和先前价格的数据集。我希望结果将前一个日期的前一个当前价格作为我选择语句中的前一个价格。

不使用临时表/表变量,不使用更新语句。

我会使用 CTE 吗?

当前结果集:

商品编号 当前价格 之前的价格 日期
24-6357-000587 25 0 20050506
24-6357-000587 35 0 20200106
30-2000-003001 54 0 20220106
30-2000-003001 80 0 20220701
70-5127-005231 100 0 20230301
70-5127-005321 160 0 20230406

应该是结果集:

商品编号 当前价格 之前的价格 日期
24-6357-000587 25 0 20050506
24-6357-000587 35 25 20200106
30-2000-003001 54 0 20220106
30-2000-003001 80 54 20220701
70-5127-005231 100 0 20230301
70-5127-005321 160 100 20230406
sql sql-server tsql row-number
1个回答
-1
投票

你可以看看这个帖子:

如何在sql server中获取上一行数据

它使用了 lag() 函数。

© www.soinside.com 2019 - 2024. All rights reserved.