我已经在这方面工作太久了,而且我对子查询知识仍然不太了解。我正在使用 TSQL。
我需要每个 Entityuid 的 MaxLastInspDate 以及其他列(问题、答案和 QuestionID,其中 QuestionID = 6412)。
我尝试过联合、子查询和简单的最大查询。 Bing CoPilot 的功能也不太好用。我尝试过,但总是遇到重复或过滤问题。
这是我遇到的问题,我没有过滤所有最大日期。即
去年最后日期、ENTITYUID、问题 ID、答案,
2023, 6/6/23 8:09 AM, CE-A4-007, 6412,破损开裂/需要灌浆
2024年,23年12月4日下午3:56,CE-A4-007,6412,好
这是我的查询: 选择 DISTINCT MAX(FY) AS LastYear、MAX(LastInspDate) AS LastDate、ENTITYUID、QUESTIONID、ANSWER 来自 dbo.ssmh_inspection_124jc 按 ENTITYUID、问题 ID、答案分组 有(问题 ID = 6412)
如果有人能帮助我,我将永远感激不已。谢谢你
我们可以在这里使用
ROW_NUMBER
:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY YEAR(FY) ORDER BY LastInspDate DESC) rn
FROM dbo.ssmh_inspection_124jc
)
SELECT YEAR(FY) AS LastYear, LastInspDate AS LastDate, ENTITYUID, QUESTIONID, ANSWER
FROM cte
WHERE rn = 1
ORDER BY YEAR(FY);