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

问题描述 投票:-3回答:1

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

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,仅举例说明

sql-server
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.