【发布时间】:2017-01-04 22:26:01
【问题描述】:
我有一个需要帮助的场景。我对堆栈溢出有点陌生,所以如果我在提问时犯了任何错误,请告诉我。欢迎您的反馈。
我正在使用 SQL Server 中的一个表,其中的值如下:
OldValue NewValue Date
------------------------------------
1 2 2016-08-01
2 3 2016-08-03
101 102 2016-08-06
102 103 2016-08-08
103 105 2016-08-14
201 202 2016-08-06
202 203 2016-08-08
203 205 2016-08-14
205 209 2016-08-18
我正在尝试提出一个查询,该查询将获取旧值替换为的最旧和最新值。我正在寻找这样的输出。
OldValue NewValue
--------------------------
1 3
101 105
201 209
我为此提出的查询如下:
select
a.OldCPN, b.NewCPN
from
test..TestTable a
inner join
TestTable b on a.NewCPN = b.OldCPN and a.date <= b.date
通过上述查询,我也得到了在中间级别替换的所有值。但我只需要一个具有最旧值和最新值的行来替换它。
对此的任何帮助都非常感谢。
谢谢。
【问题讨论】:
标签: sql sql-server teradata hierarchy