FIRST_VALUE в MS Access - PullRequest
       1

FIRST_VALUE в MS Access

0 голосов
/ 22 февраля 2019

У меня есть запрос 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

enter image description here

1 Ответ

0 голосов
/ 22 февраля 2019

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

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 во внешнем запросе, если только вам не нужна куча дубликатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...