获取DATE和ID的最大值以过滤结果

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

我正在尝试获取最新的“日期”,以便“日期”的最大值,并且从同一个表格中,我希望“stand”的最大值也来自相同的ID。

我有大量的日期,代表一个ID,但我只想提取最新的。

即时通讯试图将它保存到一个功能我不知道如果这是最好的主意。我的查询的其余部分由内部联接组成。基准是日期类型。 stand是十进制(18,6)

DECLARE @MAXDATE DATE
DECLARE @MAXSTAND decimal(18,6)

SELECT @MAXDATE = MAX(Datum) FROM [dbo].[1] WHERE ID = ID
SELECT @MAXSTAND = Stand FROM [dbo].[2]WHERE ID = ID

结果我得到:@MAXDATE:2106-10-13结果我得到:@MAXSTAND:0.000000

结果我想:@MAXDATE:2018-01-16我想要的结果:@MAXSTAND:1098.000000

tsql
2个回答
0
投票

假设SQL Server 2012或更高版本,您可以使用first_value窗口函数:

SELECT FIRST_VALUE(Stand) OVER(ORDER BY Datum DESC)
FROM TableName
WHERE Id = @Id

这将返回Stand的值,其中Datum列具有特定Id的最新值。


0
投票

提供数据后,我认为您不需要做其他事情:

SELECT MAX(Datum), MAX(Stand)
FROM TableName
WHERE ID = @MyId

编辑:你想通过ID,你可以这样做:

SELECT MAX(Datum), MAX(Stand), ID
FROM TableName
GROUP BY ID
© www.soinside.com 2019 - 2024. All rights reserved.