Sql MS Access中的第一个\u值
我有一个DB2查询。谁能帮我用MS Access写下这个查询。表中突出显示的行是预期的输出。多谢各位Sql MS Access中的第一个\u值,sql,ms-access,Sql,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_EFFE
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
您可以使用相关子查询执行此操作:
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\u Goal
,除非您需要一组重复项。您可以使用相关子查询执行此操作:
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
,除非您想要一组重复项。有一种方法可以使用每组前N个,但这需要一个唯一的标识符字段。查看可能的重复项每个组有一个使用TOP N的方法,但这需要一个唯一标识符字段。审查可能的副本