У меня есть таблица с именем Member_Details, в которой есть несколько записей для каждого member_ID. Например,

У меня есть другая таблица с именем "BMI_Data", которая выглядит следующим образом.

Цель состоит в том, чтобы извлечь имена тех членов, чей "BMI" в "Member_Details" меньше, чем "target_BMI" в таблице "BMI_Data", и вставить его в новую таблицу с именем "results", используя "Member_ID, First_Name и ИМТ "как его схема.
Кроме того, одним из соображений является выборка последних данных, доступных в «Member_Details» для каждого участника (на основе даты), а затем сравнение
Результат для вышеописанного сценария будет примерно таким.

Я пытался использовать следующий запрос
INSERT INTO results_table (Member_ID, First_Name, BMI)
select c.Member_ID, First_Name, BMI
from
(SELECT *, ROW_NUMBER() OVER (PARTITION BY Member_ID ORDER BY Date desc)
AS ROWNUM FROM Member_Details) x
JOIN
BMI_Data c ON x.Member_ID = c.Member_ID
where
x.BMI < c.Target_BMI
Приведенный выше запрос не извлекает самую последнюю дату и просто загружает все записи, в которых ИМТ члена меньше, чем target_BMI.
Пожалуйста, помогите!