En supposant que les dates de début et de fin seront toujours les valeurs les plus élevées, vous devez supprimer certaines des colonnes du GROUP BY
(ayant toutes les colonnes dans le GROUP BY
est un peu comme utiliser DISTINCT
) et utilisez une fonction d'agrégation sur l'autre colonne :
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Sinon, si ce n'est pas le cas, vous pouvez utiliser un CTE et 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;