我正在尝试为特定的请求代码选择最高的DATETIME:
这是我使用的查询:
SELECT SubmitTime
FROM [QTRAXAdmin].[qt_request]
WHERE SubmitTime IN (SELECT Max(SubmitTime)
FROM [QTRAXAdmin].[qt_request])
AND requestcode = 'FOREMAN';
我的问题是上面的查询没有返回任何内容。我认为它所做的是它发现SubmitTime列中最高的DATETIME不属于FOREMAN请求代码。
如何让它返回特定请求代码的最新SubmitTime?
答案 0 :(得分:2)
只需将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';
这样,子查询将返回此特定MAX(SubmitTime)
的{{1}}。
正如我现在所看到的那样,在第二次看之后,你根本不需要子查询:
requestcode
如果只想获得SELECT Max(SubmitTime)
FROM [QTRAXAdmin].[qt_request]
WHERE requestcode = 'FOREMAN'
的{{1}},这就足够了。
答案 1 :(得分:2)
我认为你可以简单地选择这样,当然这些时间不会在requestcode
内重复:
SELECT max(SubmitTime)
FROM [QTRAXAdmin].[qt_request]
WHERE requestcode = 'FOREMAN';
答案 2 :(得分:0)
如果您只是在寻找最新的SubmitTime,您可以这样做:
SELECT TOP 1 SubmitTime
FROM [QTRAXAdmin].[qt_request]
WHERE requestcode = 'FOREMAN'
ORDER BY SubmitTime DESC;
答案 3 :(得分:0)
使用此:
SELECT *FROM [QTRAXAdmin].[qt_request]
WHERE SubmitTime = (SELECT max(SubmitTime) FROM [QTRAXAdmin].[qt_request] WHERE requestcode = 'FOREMAN')