Aangenomen dat de begin- en einddatum altijd de hoogste waarden zullen zijn, dan moet u enkele kolommen uit de GROUP BY
verwijderen (met alle kolommen in de GROUP BY
lijkt een beetje op het gebruik van DISTINCT
) en gebruik een aggregatiefunctie in de andere kolom:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Anders, als dat niet het geval is, kunt u een CTE en ROW_NUMBER
gebruiken :
WITH CTE AS(
SELECT UserID,
StartDate,
EndDate,
ROW_NUMBER() OVER (PARTITION BY UserID ORDER BY UsersWordTimeID DESC) AS RN
FROM usersworktime)
SELECT UserID,
StartDate,
EndDate
FROM CTE
WHERE RN = 1;