从具有特定列数据的行返回最高 DATETIME

Returning highest DATETIME from row with particular column data

我正在尝试 select 特定请求代码的最高 DATETIME:

这是我正在使用的查询:

SELECT SubmitTime 
FROM   [QTRAXAdmin].[qt_request] 
WHERE  SubmitTime IN (SELECT Max(SubmitTime) 
                      FROM   [QTRAXAdmin].[qt_request]) 
       AND requestcode = 'FOREMAN'; 

我的问题是我上面的查询 return 什么都没有。我认为它正在做的是发现 SubmitTime 列中的最高 DATETIME 不属于 FOREMAN 请求代码。

我怎样才能达到特定请求代码的 return 最新提交时间?

只需将 requestcode = 'FOREMAN' 谓词放在子查询的 WHERE 子句中:

SELECT SubmitTime 
FROM   [QTRAXAdmin].[qt_request] 
WHERE  SubmitTime IN (SELECT Max(SubmitTime) 
                      FROM   [QTRAXAdmin].[qt_request]
                      WHERE requestcode = 'FOREMAN') 
       AND requestcode = 'FOREMAN';

这样,子查询将 return MAX(SubmitTime) 用于此特定 requestcode

现在看来,再看一遍,你根本不需要子查询:

SELECT Max(SubmitTime) 
FROM   [QTRAXAdmin].[qt_request]
WHERE requestcode = 'FOREMAN'

这就够了,如果你只想得到 requestcode = 'FOREMAN'Max(SubmitTime)

我想你可以简单地 select 像这样,当然如果那些时间不在 requestcode 内重复:

SELECT max(SubmitTime)
FROM   [QTRAXAdmin].[qt_request] 
WHERE requestcode = 'FOREMAN'; 

如果您只是寻找最新的提交时间,您可以这样做:

SELECT TOP 1 SubmitTime 
FROM   [QTRAXAdmin].[qt_request] 
WHERE  requestcode = 'FOREMAN'
ORDER BY SubmitTime DESC; 

使用这个:

SELECT *FROM   [QTRAXAdmin].[qt_request] 
WHERE SubmitTime = (SELECT max(SubmitTime) FROM [QTRAXAdmin].[qt_request] WHERE requestcode = 'FOREMAN')