SELECT i1.*
FROM tblIssue i1
LEFT OUTER JOIN tblIssue i2
ON (i1.[SYMB] = i2.[SYMB] AND i1.[Shareholder] < i2.[Shareholder])
WHERE i2.[SYMB] IS NULL;
Это прием, который я использую для решения подобных проблем: покажите мне строку, соответствующую i1
, когда нет другой строки i2
с таким же [SYMB]
и большим [Shareholder]
. То есть если не существует строки с большим [Shareholder]
, то i1
должно иметь наибольшее значение.
Этот запрос возвращает несколько строк, когда есть привязка для наибольшего значения [Shareholder]
на отдельное значение [SYMB]
, но то же самое верно для большинства других ответов, данных другими людьми в этой теме. Чтобы решить эту проблему, необходимо добавить еще одно условие в объединение, используя уникальный столбец таблицы.