E se um funcionario tivesse tido uns 8 aumentos salariais e eu quero entao listar os salarios deste funcionario sendo apenas os 3 ultimos? como ficaria a query?
E se um funcionario tivesse tido uns 8 aumentos salariais e eu quero entao listar os salarios deste funcionario sendo apenas os 3 ultimos? como ficaria a query?
Olá Reliquias,
Para listar apenas os 3 últimos salários de um funcionário, você pode utilizar a cláusula "ORDER BY" para ordenar os salários em ordem decrescente e a cláusula "LIMIT" para limitar a quantidade de resultados retornados pela consulta. A consulta SQL ficaria assim:
SELECT salario FROM tabela_salarios WHERE id_funcionario = X ORDER BY data DESC LIMIT 3
Onde "X" é o ID do funcionário que você deseja consultar os salários.
No Spring Data JPA, você pode utilizar a anotação @Query
para escrever a consulta personalizada. Ficaria assim:
@Query("SELECT s.salario FROM Salario s WHERE s.funcionario.id = :idFuncionario ORDER BY s.data DESC")
List<Double> findUltimosTresSalarios(@Param("idFuncionario") Long idFuncionario, Pageable pageable);
Neste exemplo, a consulta retorna uma lista com os 3 últimos salários do funcionário com o ID informado. A anotação @Param
é utilizada para informar o valor do parâmetro idFuncionario
.
Espero ter ajudado e bons estudos!