How to find the most updated tuple in postgres?

0

Friends. I'm having difficulty recovering the most current mileage of a vehicle when it arrives at the company. The identification of the tuple is by the date of arrival of the vehicle in the company. At the moment I have the following SQL :

select relatorio_viagem_veiculo.referencia_veiculo, MAX(relatorio_viagem.data_chegada) from relatorio_viagem inner join relatorio_viagem_veiculo on( relatorio_viagem.id_relatorio_viagem = relatorio_viagem_veiculo.id_relatorio_viagem ) where relatorio_viagem_veiculo.referencia_veiculo = '246' and            relatorio_viagem.data_saida between '2017-03-01' and '2017-03-31' group by   relatorio_viagem_veiculo.referencia_veiculo, relatorio_viagem.data_chegadaorder by relatorio_viagem.data_chegada desc;  

And I get the following result:

I would like to return the most current record, ie:

I hope I have explained well what I desire. Thanks in advance for your help!

    
asked by anonymous 16.05.2017 / 19:29

1 answer

0

Remove the field data_chegada from group by , in this way the reference of each vehicle and the maximum date will be returned.

SELECT
    relatorio_viagem_veiculo.referencia_veiculo,
    max(relatorio_viagem.data_chegada)
FROM relatorio_viagem
    INNER JOIN relatorio_viagem_veiculo 
        ON (relatorio_viagem.id_relatorio_viagem = relatorio_viagem_veiculo.id_relatorio_viagem)
WHERE
    relatorio_viagem_veiculo.referencia_veiculo = '246'
    AND relatorio_viagem.data_saida BETWEEN '2017-03-01'
    AND '2017-03-31'
GROUP BY
    relatorio_viagem_veiculo.referencia_veiculo
ORDER BY
    2 DESC;
    
16.05.2017 / 20:35