加入桌面以获得TOP 1 Date SQL Server 2014

时间:2018-03-23 18:10:08

标签: sql-server

这种旧方式导致我有一条记录

SET @ThepriorPurge = (SELECT TOP 1 TNP.[updated_Time]
                      FROM [dbo].[udt_LP_Purge] AS TNP,
                            @tempFCPurgeOrder AS TCP
                      WHERE tcp.Item = TNP.Item
                        AND TNP.Updated_Time < tcp.updated_Time
                        AND TNP.Locn = @destinationTank
                      ORDER BY TNP.Updated_Time DESC)

我正在尝试转换为一个表来加入并继续获取多个值 最短约会时间。

@tempFCPurgeOrder

Row Item    updated_time    LOCN
-------------------------------------
1   4732    3/10/18 8:34    Tank1
2   4732    3/11/18 15:36   Tank1
3   4732    3/12/18 12:39   Tank1
4   4732    3/14/18 9:19    Tank1
5   7812    3/7/18 14:42    Tank2
6   7812    3/19/18 14:35   Tank2

[udt_LOTP_Purge]

Row Item    updated_Time    LOCN
---------------------------------
1   4732    3/9/18 8:34     Tank1
2   4732    3/10/18 15:36   Tank1
3   4732    3/13/18 12:39   Tank1
4   4732    3/13/18 9:19    Tank1
5   7812    3/5/18 15:42    Tank2
6   7812    3/15/18 15:42   Tank2
  • 记录1应匹配1
  • 记录2应该匹配2
  • 记录3应匹配2

然而,所有项目4732和坦克1都匹配表b第1行。

表格中没有行ID,只是示例

1 个答案:

答案 0 :(得分:0)

您想要每个坦克和物品的最大更新时间吗?

SELECT tnp.Locn, tnp.Item, MAX(tnp.Updated_Time) Updated_Time
FROM dbo.udt_LP_Purge AS tnp
GROUP BY tnp.Locn, tnp.Item