Я пытаюсь вернуть деталь на каждый день, но только детали, связанные с максимальным ID_EXECN для каждого дня. Вот мой код:sql oracle - дни возврата с максимальным значением за каждый день
SELECT
T1.ID_EXECN,
T1.DT_HDG_EFF,
T1.ID_DERIV,
T1.CUSIP
FROM
(SELECT
he.ID_EXECN,
he.DT_HDG_EFF,
d.ID_DERIV,
d.ID_CUSIP AS CUSIP
FROM
(hdvsudbr.deriv_popltn d
INNER JOIN hdvsudbr.hdg_execn_job_deriv_popltn jdp
ON jdp.ID_DERIV = d.ID_DERIV
INNER JOIN hdvsudbr.hdg_execn_job hej
ON hej.ID_JOB = jdp.ID_JOB
INNER JOIN hdvsudbr.hdg_execn he
ON he.ID_EXECN = hej.ID_EXECN)
WHERE hej.CD_JOB_TYPE = 9
AND he.DT_HDG_EFF >=LAST_DAY(ADD_MONTHS(SYSDATE,-5))) T1
Мой текущий результат выглядит следующим образом:
Несколько дней там более одного ID_EXECN (два, три или более) и несколько дней есть только один ID_EXECN, так max в дни, где есть, нужно просто вернуть тот же самый.
ID_EXECN DT_HDG_EFF ID_DERV CUSIP
40 11/8/2016 1 Z800
40 11/8/2016 2 Z801
41 11/8/2016 1 Z800
41 11/8/2016 2 Z801
22 11/9/2016 1 Z800
22 11/9/2016 2 Z801
23 11/9/2016 1 Z800
23 11/9/2016 2 Z801
24 11/9/2016 1 Z800
24 11/9/2016 2 Z801
10 11/10/2016 1 Z800
10 11/10/2016 2 Z801
Это выход я пытаюсь получить, только записи с максимальным ID_EXECN для данного дня:
ID_EXECN DT_HDG_EFF ID_DERV CUSIP
41 11/8/2016 1 Z800
41 11/8/2016 2 Z801
24 11/9/2016 1 Z800
24 11/9/2016 2 Z801
10 11/10/2016 1 Z800
10 11/10/2016 2 Z801
До сих пор я только смог получить максимальную ID_EXECN для все дни в запросе, который в этом случае будет 41, но это не то, что я хочу. Я хочу максимум за каждый день. В других случаях мой запрос выполняется, но просто ничего не возвращает.