Мне нужно присоединить другую таблицу к моему запросу и извлечь максимальное значение определенного столбца из этой объединенной таблицы. Проблема в том, что иногда пользователь будет иметь кратные этому максимальному значению (например, если максимальное значение равно 5,1, есть еще одна строка, которая также содержит это максимальное значение, поэтому она дает несколько результатов). Мне нужно знать, как заставить его захватить максимум, и когда есть кратные этого максимума (и ТОЛЬКО когда есть кратные этого максимума, так что я все еще получаю результаты от пользователей, у которых нет нескольких максимальных значений), возьмите максимальное значение из другого столбца, не забывая максимальное значение, которое изначально получил запрос.
Я включил свой текущий запрос ниже, который возвращает несколько максимальных значений. Таблица, к которой я присоединяюсь и на которую ссылаюсь, называется APPLICATION_VERSION. Мне нужно получить максимальное значение на основе USER_ACCOUNT_ID (который я получаю из таблицы EMPLOYEE) из столбца VERSION_NUMBER. Если есть несколько максимумов VERSION_NUMBER, я хочу выбрать максимальное VERSION_NUMBER на основе максимального VERSION_CHANGE_DATE. Иногда, хотя есть несколько кратных максимумов VERSION_CHANGE_DATE, поэтому я бы хотел, чтобы он выбрал один с максимальным VERSION_CHANGE_DATE, а затем APPLICATION_VERSION_ID.
Кстати, извините, если я сделал это более сложным, чем нужно. Просто хотел быть тщательным. Буду очень признателен за любую помощь:)
SELECT e.user_account_id,e.employee_id,e.external_id_1,e.external_id_2,e.last_name as LAST,e.first_name as FIRST,e.job_profile_type as rank,e.status_change_date,t.name as TEAM,a.alignment_name as TERRITORY,m.machine_node_id as NODE_ID,a.alignment_id,t.division,av.version_change_date,av.version_number as EI_Version,av.login_date as LAST_LOGIN,m.platform_version
FROM employee e, alignment a, machine_node m, team t, application_version av,
(SELECT av.user_account_id,MAX(av.version_change_date) as maxdate,max(av.application_version_id) as maxversionid
FROM application_version av
GROUP BY av.user_account_id) av2
where e.employee_id = a.employee_id
and av.version_change_date = av2.maxdate
and e.employee_id = m.employee_id
and t.team_id = a.team_id
and e.status = 'ACTV'
and m.status = 'ACTV'
and e.user_account_id=av.user_account_id
and m.machine_type = 'REMO'
and e.external_id_1= 'XM68823'
order by e.last_name asc