Vlavros Posted September 17, 2009 at 06:33 PM Report Share #287493 Posted September 17, 2009 at 06:33 PM Olá a todos. Estou utilizando o banco de dados firebird e estou com dificuldades para fazer a seguinte query: Tem uma tabela chamada T0501_INDICES, nela um coluna chamada A0501_TAXAMENSAL nesta coluna há diversos números do tipo FLOAT como por exemplo: A0501_ID | A0501_TAXAMENSAL 1 | 1.03 2 | 1.50 3 | 2.35 4 | 2.40 5 | 3.60 Baseado em um valor X que o usuario digitar a query teria que retornar o valor mais próximo tanto para mais como para menos, supondo que ele digite 2.37 a query retornaria a linha do número 2.35 (ID 3). Caso digitasse 1.40 retornaria 1.50 (ID 2) Obrigado. Link to comment Share on other sites More sharing options...
bruno1234 Posted September 17, 2009 at 07:25 PM Report Share #287500 Posted September 17, 2009 at 07:25 PM Firebird nunca trabalhei n conheço. Mas deixo uma sugestão em Sql Server: Declare @x float; set @x = 1.5; select top 1 ID, Taxa, min(abs(Taxa-@x)) as diferenca from TFloat group by ID, Taxa order by 3 Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
Vlavros Posted September 23, 2009 at 12:26 PM Author Report Share #288273 Posted September 23, 2009 at 12:26 PM Agradeço sua ajuda, porém o firebird não tem ABS e pelo que me parece não permite subtração/adição 🙂 Eu bolei uma query que faz quase o que eu quero o restante eu manipulo com o php. SELECT A0501_ID, A0501_TAXAMENSAL FROM T0501_INDICES WHERE (SELECT MAX(A0501_TAXAMENSAL) FROM T0501_INDICES WHERE A0501_TAXAMENSAL < ?) = A0501_TAXAMENSAL OR (SELECT MIN(A0501_TAXAMENSAL) FROM T0501_INDICES WHERE A0501_TAXAMENSAL > ?) = A0501_TAXAMENSAL Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now