Eu tenho uma tabela que se parece com isso:
+---------------------------------------------+
| EVENT_ID | ITEM_ID | PERSON_ID | EVENT_DATE |
+---------------------------------------------+
| 123 | 1 | 2 | 21-AUG-03 |
| 124 | 1 | 3 | 22-AUG-03 |
| 125 | 1 | 45 | 23-AUG-03 |
| 126 | 1 | (null) | 24-AUG-03 |
| 127 | 2 | 2 | 25-AUG-03 |
| 128 | 2 | 6 | 26-AUG-03 |
| 129 | 2 | 1 | 27-AUG-03 |
+---------------------------------------------+
Portanto, preciso obter o mais recente (MAX(event_date)), person_id não nulo por item_id. Criamos uma abordagem PL/SQL bastante simples para isso, mas estávamos tentando fazer o trabalho com SQL puro. Alguém tem uma ideia?
Apenas como observação, o event_id nem sempre será sequencial assim. Temos dois servidores de banco de dados redundantes.
Obrigado antes do tempo.
O seguinte requer apenas uma verificação completa da tabela.
Tente isso