SELECT A.institution,
A.acad_career,
A.emplid,
a.strm,
NVL(
SUM(
CASE
WHEN A.repeat_candidate IN ('N', 'Y')
AND A.CRSE_GRADE_OFF != 'F' THEN
MAX(grade_points)
ELSE
(grade_points)
END
),
0
)
AS GPA,
NVL(SUM(CASE WHEN a.repeat_candidate = 'N' THEN A.UNT_TAKEN END), 0) AS TAKEN,
a.acad_prog
FROM ps_stdnt_enrl A, ps_STDNT_CLAS_D_VW B
WHERE A.emplid = B.emplid
AND A.class_nbr = B.class_nbr
AND A.strm = B.strm
AND A.acad_career = B.acad_career
AND a.STDNT_ENRL_STATUS = 'E'
AND a.emplid LIKE '06381313011%'
GROUP BY a.emplid,
a.acad_career,
a.institution,
a.acad_prog,
A.strm
このクエリは、max関数がなくてもうまく動作します。ここで問題となるのは、この条件で最大値が必要ですが、単一のグループ関数ではないことです。oracle sqlのsum式のcase文でMAX関数を使用する方法は?
質問は何ですか?これはエラーですか?もしそうなら、どんなエラー? – Aleksej