FIRST_VALUE в MS Access

У меня есть запрос DB2. Может ли кто-нибудь помочь мне написать этот запрос в MS Access. Выделенная строка в таблице — это ожидаемый результат. Спасибо.

SELECT s.Student_ID,
first_value(DT_EFFECTIVE) OVER (PARTITION BY S.Student_ID ORDER BY DT_EFFECTIVE DESC) AS DT_EFFECTIVE, 
first_value(Student_Goal) OVER (PARTITION BY S.Student_ID ORDER BY DT_EFFECTIVE DESC) AS Student_Goal
FROM Student AS S
LEFT JOIN St_Goal AS G ON  s.Student_ID = G.Student_ID
WHERE S.Student_ID = 12345

FIRST_VALUE в MS Access

Существует метод использования TOP N для каждой группы, но для этого требуется уникальное поле идентификатора. Проверить allenbrowne.com/subquery-01.html#TopN

June7 21.02.2019 22:49

Возможный дубликат Верхние n записей на группу sql в доступе

June7 21.02.2019 22:50
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
2
158
1

Ответы 1

Вы можете сделать это с помощью коррелированного подзапроса:

SELECT s.Student_ID,
       (SELECT TOP (1) sg2.DT_EFFECTIVE
        FROM St_Goal as sg2
        WHERE sg2.Student_ID = S.Student_ID
        ORDER BY sg2.DT_EFFECTIVE DESC
       ) as DT_EFFECTIVE, 
       (SELECT TOP (1) DT_EFFECTIVE
        FROM St_Goal as sg2
        WHERE sg2.Student_ID = S.Student_ID
        ORDER BY sg2.DT_EFFECTIVE DESC
       ) as Student_Goal
FROM Student AS S
WHERE S.Student_ID = 12345;

Вам не нужна ссылка на St_Goal во внешнем запросе, если только вам не нужна куча дубликатов.

Другие вопросы по теме