Dengan asumsi bahwa tanggal mulai dan akhir akan selalu menjadi nilai tertinggi maka Anda perlu menghapus beberapa kolom dari GROUP BY
(memiliki semua kolom di GROUP BY
agak seperti menggunakan DISTINCT
) dan gunakan fungsi agregat di kolom lain:
SELECT UserId,
MAX(StartDate) AS StartDate,
MAX(EndDate) AS EndDate
FROM usersworktime
GROUP BY UserId;
Jika tidak, jika tidak, Anda dapat menggunakan CTE dan 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;