Можно получить MAX, используя подзапрос, а затем GROUP BY
их столбцы:
SELECT
max(q.CompleteDate) MaxCompleteDate
, q.sort
--, your grouped columns here
FROM
(
SELECT
*
FROM
(
SELECT
ROW_NUMBER() OVER (PARTITION BY [Description],[SolveIssueCategory],
[SolveIssueName],[SolveExplanation] ORDER BY [CompleteDate],[CompleteTime],
[Status]) as sort,
* FROM
(SELECT
ISNULL ([DispatchListMain].[Description] , '') as 'Description' ,
ISNULL (SI.SolveIssueName , '') as 'SolveIssueName' ,
ISNULL ([SolveIssue].[SolveIssueName] , '') as 'SolveIssueName' ,
ISNULL ([Detail].[SolveExplanation] , '') as 'SolveExplanation' ,
MAX (ISNULL (CONVERT (char(10) , [DetailTotal].[CompleteDate] , 111) , ''))
as 'CompleteDate' ,
MAX (ISNULL (CONVERT (varchar(5) , CONVERT (datetime ,
[DetailTotal].[CompleteDate]) , 108) , '')) as 'CompleteTime' ,
ISNULL (CASE [Detail].[Status]
WHEN 'S00' THEN 'temp'
END , '') as 'Status'
FROM
[DispatchListMain] JOIN [Detail] ON [Detail].[DispatchListMainId] =
[DispatchListMain].[id]
JOIN [Personnel]
ON [Personnel].[Id] = [DispatchListMain].[PersonnelId]
LEFT OUTER JOIN [SolveIssue] ON [SolveIssue].[Id] = [Detail].[SolveReason]
JOIN [DetailTotal] ON [DetailTotal].[DispatchListMainId] = [DispatchListMain].[Id]
LEFT OUTER JOIN
(SELECT [Id] , [SolveIssueCode]
, [SolveIssueName] , [SolveIssueCategory]
, [ParentId]
FROM [SolveIssue] WHERE SolveIssueCategory =
'SolveIssueCategory') SI
ON SI.Id = [DetailTotal].[IssueCategory]
WHERE
--GROUP BY [DispatchListMain].[id]
ERPNo = 'GN18030003' AND
[Detail].[Status] <> 'S61' AND
(CONVERT (varchar(10),([Detail].[CreateDate])) >= '2019/03/18'
AND CONVERT (varchar(10),([Detail].[CreateDate])) <= + '2019/03/25')) temp )
temp2 WHERE temp2.sort = 1 ORDER BY 'CreateDate' DESC
)q
GROUP BY q.CompleteData, q.sort --, other your columns