当我只想要每个(多个 Entityuids)EntityUID 的 MaxLastInspDate 以及我需要的其他列时,在查询中获取重复项[重复]

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

我已经在这方面工作太久了,而且我对子查询知识仍然不太了解。我正在使用 TSQL。

我需要每个 Entityuid 的 MaxLastInspDate 以及其他列(问题、答案和 QuestionID,其中 QuestionID = 6412)。

我尝试过联合、子查询和简单的最大查询。 Bing CoPilot 的功能也不太好用。我尝试过,但总是遇到重复或过滤问题。

这是我遇到的问题,我没有过滤所有最大日期。即

去年 最后日期 实体UID 问题ID 回答
2023 6/6/23 8:09 上午 CE-A4-007 6412 破损开裂/需要灌浆
2024 12/4/23 下午 3:56 CE-A4-007 6412

这是我的询问:

SELECT DISTINCT MAX(FY) AS LastYear, MAX(LastInspDate) AS LastDate, ENTITYUID, QUESTIONID, ANSWER
FROM            dbo.ssmh_inspection_124jc
GROUP BY ENTITYUID, QUESTIONID, ANSWER
HAVING        (QUESTIONID = 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.