Asumiendo que las fechas de inicio y finalización siempre serán los valores más altos, entonces debe eliminar algunas de las columnas del GROUP BY
(teniendo todas las columnas en el GROUP BY
es como usar DISTINCT
) y use una función agregada en la otra columna:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
De lo contrario, si ese no es el caso, puede usar un CTE y ROW_NUMBER
:
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;