Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maico Maldaner

Penultimo Registro - Ultimo

Recommended Posts

Boa tarde, gostaria de saber como devo fazer para calcular a penultima tupla menos a ultima.

Exemplo:

* Quero saber a kilometragem percorrida desde o penultimo abastecimento ateh o ultimo.

 

- Para fazer isso, no meu select eu teria que pegar a penultima tupla menos a ultima, assim obteria a KMtragem percorrida, porem nao sei como fazer isso.

 

Banco exemplo:

ID | KM_FINAL |

01 | 100 |

02 | 70 |

03 | 50 |

 

No caso acima citado, eu teria que pegar a tupla ID= 01 menos a tupla ID=02.

 

Desde ja, agradeco a atencao de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma ideia ...

 

SELECT T2.ID , (T1.KMFINAL - T2.KMFINAL) DIF
FROM TABELA T1,TABELA T2
WHERE T1.ID = (T2.ID + 1)

 

Acho que precisa um outer join para o último mas a linha é +ou- esta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma ideia ...

 

SELECT T2.ID , (T1.KMFINAL - T2.KMFINAL) DIF
FROM TABELA T1,TABELA T2
WHERE T1.ID = (T2.ID + 1)

 

Acho que precisa um outer join para o último mas a linha é +ou- esta.

 

Poderia dar uma explicada no codigo?

Sou principiante na area de programacao, se puder dar uma explicadinha, ficarei grato.

Oque vem a ser o T1..DIF..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um select com um JOIN na própria tabela pois isto permite a comparação.

 

TABELA T1,TABELA T2 como estou usando a mesma tabela duas vezes preciso de um alias para qualificar as tabelas.

 

A comparação WHERE T1.ID = (T2.ID + 1) iguala um registro da tabela ao seu seguinte (1 com 2 , 2 com 3 etc).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um select com um JOIN na própria tabela pois isto permite a comparação.

 

TABELA T1,TABELA T2 como estou usando a mesma tabela duas vezes preciso de um alias para qualificar as tabelas.

 

A comparação WHERE T1.ID = (T2.ID + 1) iguala um registro da tabela ao seu seguinte (1 com 2 , 2 com 3 etc).

 

Motta, o problema eh que eu preciso fazer essa conta em todos os registros do banco.

Assim, eu tenho o campo KM_Final e o Campo Media, sendo que no campo media eu preciso fazer essa continha... resultando uma media em todos os registros da tablea, entendeu?

 

Exemplo:

KM_Final | Media

300 | 100

200 | 100

100 | 50

50 | 10..

 

E assim por diante, na tabela toda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.