número_fila debería ser suficiente para sus necesidades.
Nota:Supongo que su columna de fecha es un tipo de datos de fecha o fecha y hora verdaderos y no una cadena en el formulario que ha mostrado. Si esa suposición es incorrecta, se necesitaría alguna manipulación de cadena adicional para convertir la fecha en un formato ordenable.
;with cteRowNumber as (
select Date, ProductID, Year, Price,
row_number() over (partition by ProductID, Year order by Date desc) as RowNum
from YourTable
)
select Date, ProductID, Year, Price
from cteRowNumber
where RowNum = 1