我正在尝试获取最新的“日期”,以便“日期”的最大值,并且从同一个表格中,我希望“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
假设SQL Server 2012或更高版本,您可以使用first_value
窗口函数:
SELECT FIRST_VALUE(Stand) OVER(ORDER BY Datum DESC)
FROM TableName
WHERE Id = @Id
这将返回Stand
的值,其中Datum
列具有特定Id
的最新值。
提供数据后,我认为您不需要做其他事情:
SELECT MAX(Datum), MAX(Stand)
FROM TableName
WHERE ID = @MyId
编辑:你想通过ID,你可以这样做:
SELECT MAX(Datum), MAX(Stand), ID
FROM TableName
GROUP BY ID