如何在给出时间间隔时检索最新记录?

时间:2017-07-19 16:04:54

标签: sql sql-server

我需要在选择产品时获取给定数据集的最新记录。每条记录的价格对不同的时间间隔有效。我需要获取最新的每条记录的价格例如:

product name           price    from_date    to_date
snickers original      5.99     1/1/2017     2/2/2017
snickers original      4.67     3/3/2017     4/4/2017
skittles rainbow       2.99     7/7/2016     8/8/2017
skittles rainbow       8.99     9/9/2016     10/10/2017

并且所需的结果应该是没有向用户显示日期的名称和价格。日期应该像这样隐藏:

snickers original     4.67
skittles rainbow      8.99

1 个答案:

答案 0 :(得分:1)

您可以使用WITH TIES条款与Row_Number()一致,并假设没有FUTURE定价。

Select Top 1 with Ties [product name],Price
 from  YourTable
 Order By Row_Number() over (Partition By [product name] Order By To_Date Desc)

<强>返回

product name       price
skittles rainbow    8.99
snickers original   4.67