У меня есть эта таблица (скажем, table1):Oracle SQL: GROUP BY и HAVING условие
ID1 | ID2 | NAME
где (ID1, ID2) является составной PK.
И это еще одна таблица (скажем, TABLE2):
ID | COD1 | COD2 | DATA | INDEX
где ID это на ПК.
мне нужно присоединиться к этой таблице на ((TABLE1.ID1 = TABLE2.COD1) AND (TABLE1.ID2 = TABLE2.COD2))
Моей проблемы заключается в том, что для каждого идентификатора TABLE2, у меня есть много кортежей с различным INDEX. Я хочу только присоединиться к кортежу, что его INDEX является MAX его группы (COD1, COD2).
Например, если у меня есть:
ID1|ID2|NAME
10 10 JOSH
ID|COD1|COD2|DATA|INDEX
1 10 10 YES 0
2 10 10 NO 1
3 11 10 OH 0
Я хочу получить:
ID1|ID2|NAME|DATA
10 10 JOSH NO
Я попытался это, но он не работает:
SELECT ID1, ID2, NAME, DATA
FROM TABLE1 T1 JOIN TABLE2 T2 ON T1.ID1 = T2.COD1 AND T1.ID2 = T2.COD2
GROUP BY ID1, ID2, NAME, DATA HAVING INDEX = MAX(INDEX)
Спасибо.
является это дает какую-либо ошибку? – varsha