Попробуйте CTE (Common Table Expression) с функцией ранжирования ROW_NUMBER
:
;WITH duplicates AS
(
SELECT
EntryID, DateOfEntry
ROW_NUMBER() OVER (PARTITION BY NoOfEntry,TypeOfEntry
ORDER BY DateOfEntry DESC) 'RowNum'
FROM dbo.Enty
)
SELECT EntryID FROM duplicates
WHERE RowNum > 1
GO
CTE "разделит" ваши данные на (NoOfEntry,TypeOfEntry)
и начнет присваивать порядковые номера (1, 2, 3, .....) каждой строке для каждой группы этих двух столбцов.
Любая строка, имеющая RowNum > 1
, является дубликатом на основе (NoOfEntry,TypeOfEntry)