当我只想每个 EntityUID 的 MaxLastInspDate 以及我需要帮助的其他列时,查询中仍然出现重复项

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

我已经在这方面工作太久了,而且我对子查询知识仍然不太了解。我正在使用 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)

如果有人能帮助我,我将永远感激不已。谢谢你

sql t-sql subquery max
1个回答
0
投票

我们可以在这里使用

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);
© www.soinside.com 2019 - 2024. All rights reserved.