Có một số cách để thực hiện, một cách là sử dụng ROW_NUMBER như thế này:
SELECT id, type, date
FROM
(
SELECT tb1.id, tb1.type, tb1.Date,
ROW_NUMBER() OVER (PARTITION BY tb1.id ORDER BY tb1.Date DESC) AS RowNo
FROM Table tb1
WHERE tb1.type IN ('A','B')
) x
WHERE x.RowNo = 1
Điều này sẽ trả về hàng cho từng id riêng biệt giá trị có Ngày mới nhất.