rijnummer moet voldoende zijn voor uw behoeften.
Opmerking:ik ga ervan uit dat uw kolom Datum een echt datum- of DateTime-gegevenstype is en geen tekenreeks in de vorm die u hebt weergegeven. Als die aanname onjuist is, zou er wat extra stringmanipulatie nodig zijn om Datum om te zetten in een sorteerbaar formaat.
;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