Vorausgesetzt dass die Start- und Enddaten immer die höchsten Werte sind, dann müssen Sie einige der Spalten aus GROUP BY
löschen (mit allen Spalten in GROUP BY
ist so etwas wie die Verwendung von DISTINCT
) und verwenden Sie eine Aggregatfunktion für die andere Spalte:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Andernfalls, wenn dies nicht der Fall ist, können Sie einen CTE und ROW_NUMBER
verwenden :
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;