› Fóruns › SQL e PL/SQL › [Dúvida Sub Select] › [Dúvida Sub Select]
3 de fevereiro de 2009 às 6:28 pm
#85046
Participante
Uma forma de fazer seria utilizando uma função analítica, sendo que o comando ficaria mais ou menos assim:
SELECT a.funcionario,
a.salario
FROM (SELECT funcionario,
salario,
Row_Number() over
(
PARTITION BY funcionario
ORDER BY dt_salario DESC
) AS ID
FROM tabela
) a
WHERE a.id = 2
A função utilizada no FROM ordena a data do salário em ordem decrescente por funcionário. Então, o identificador 2 seria a penúltima data. Se fosse a antepenúltima, seria o identificador 3, e assim por diante.
[]s