Допустим, у меня есть эта таблица MS SQL, на самом деле это результат запроса, который включает 5 таблиц:

ID SOrder Line Date1 Date2 Date3 SomeColumn
1 123a456 10 2018-01-01 2018-01-01 2018-01-01 abc
2 123a456 10 2018-01-01 2019-01-01 2018-01-01 def
3 123a456 10 2019-01-01 2018-01-01 2020-01-01 ghi
4 123a456 10 2018-01-01 2018-01-01 2019-01-01 jkl
5 123a456 10 2018-01-01 2018-01-01 2018-01-01 mno
6 123a456 20 2018-01-01 2020-01-01 2018-01-01 prs
7 123a456 20 2019-01-01 2018-01-01 2019-01-01 tuv
8 123a456 20 2018-01-01 2018-01-01 2018-01-01 xxx
9 123a456 30 2018-01-01 2020-01-01 2018-01-01 yyy
10 123a777 10 2019-01-01 2019-01-01 2018-01-01 zzz
11 123a777 10 2020-01-01 2019-01-01 2019-01-01 111
12 123a777 20 2019-01-01 2018-01-01 2018-01-01 222
13 123a777 20 2021-01-01 2019-01-01 2019-01-01 333
14 123a777 20 2018-01-01 2018-01-01 2020-01-01 444
, где яхочу извлечь только те строки с ID = 3,6,9,11,13, которые имеют самую высокую дату.Таким образом, из первых пяти записей, у которых значение столбца Line равно 10, я хочу только строку с ID = 3, потому что она имеет самую высокую дату (2020-01-01) из 5.
1) Как я могу добиться этого с помощью запроса T-SQL?
2) В качестве альтернативы я мог бы сделать простую SELECT * FROM MyTable
и выполнить вышеупомянутую фильтрацию в C # или Javascript / AngularJs 1. Но как?