[firebase-br] Pegar item anterior e posterior numa consulta SQL (FireBird)

Moacir - GMail prismars em gmail.com
Seg Jan 28 08:36:24 -03 2008


Ricardo,

Altere o teu SQL para:

Select Denticao, PassoMenor
>From Faixas
Where :Passo Between PassoMenor And PassoMaior;

Após isto use o valor do PassoMenor para gerar nova consulta:

Select first 1 Denticao
>From Faixas
Where :MeuPassoMenor>PassoMaior
order by PassoMaior DESC


[ ]´s
Moacir

Ricardo César Cardoso escreveu:
> Bom dia amigos!
>
> A dúvida que tenho não é sobre uma instrução SQL no Firebird v1.5.2, onde tenho uma tabela com a seguinte estrutura (campos):
>
> IDDenticao[inteiro] / Denticao[String] / PassoMenor[inteiro] / PassoMaior[inteiro]
>
> e os seguintes dados:
>
> 1 / '14-18' / 1829 / 2539
> 2 / '10-14' / 2540 / 3171
> 3 / '8-12' / 3172 / 4241
> 4 / '6-10' / 4242 / 5079
> ...
>
> No meu programa tenho uma rotina que seleciona em que faixa uma medida se encontra, por exemplo se passo o valor 3500, ele me retorna '8-12'. Para isso uso a seguinte expressão
>
> [code]
> Select Denticao
> >From Faixas
> Where :Passo Between PassoMenor And PassoMaior;
> [/code]
>
> Porém, numa determinada situação, preciso do passo imediatamente superior ao passo selecionado. Repetindo o exemplo anterior, onde passo o valor 3500, devo trazer '10-14'. O problema é como montar esta expressão...
>
> Fico grato com a sua ajuda,
> Ricardo.
>        
> ---------------------------------
> Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>   




Mais detalhes sobre a lista de discussão lista