Förutsatt att start- och slutdatum alltid kommer att vara de högsta värdena måste du ta bort några av kolumnerna från GROUP BY
(har alla kolumner i GROUP BY
är ungefär som att använda DISTINCT
) och använd en aggregatfunktion i den andra kolumnen:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Annars, om så inte är fallet, kan du använda en CTE och 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;