Localizar a data mais próxima
Pessoal, Bom dia!
Preciso fazer uma select que me retorne a data mais próxima em uma sequencia de datas.
na Tabela tenho Data,Valor,Produto. Populada com varios registros.
ex: quero buscar no campo data desta tabela a mais proxima de 01/01/2005.
Preciso fazer uma select que me retorne a data mais próxima em uma sequencia de datas.
na Tabela tenho Data,Valor,Produto. Populada com varios registros.
ex: quero buscar no campo data desta tabela a mais proxima de 01/01/2005.
Marioribeiro
Curtidas 0
Respostas
Kotho
06/05/2005
Qual o banco?
GOSTEI 0
Marioribeiro
06/05/2005
FireBird 1.5
GOSTEI 0
Kotho
06/05/2005
Me surgiu uma outra dúvida... você quer a mais próxima tanto menor quanto maior??? ou somente maior??? ou somente menor???
GOSTEI 0
Edilcimar
06/05/2005
coloque between data - xdias e data + ydias
GOSTEI 0
Marioribeiro
06/05/2005
poderia ser mais expecifico? o q são xdias e ydias, eu não tenho esses dados! e nem como especifica-los.
GOSTEI 0
Edilcimar
06/05/2005
assim você vê os dados entre duas datas, a data desejada - xdias e a data desejada + ydias
GOSTEI 0
Marioribeiro
06/05/2005
meu amigo, eu não tenho como especificar xdias e ydias.
Uma tabela é de preço e a outra tem a data da venda. O que preciso é que ao digitar a data da venda ele busque na tabela de preços quanto este produto custava naquela data.
Uma tabela é de preço e a outra tem a data da venda. O que preciso é que ao digitar a data da venda ele busque na tabela de preços quanto este produto custava naquela data.
GOSTEI 0
Marioribeiro
06/05/2005
Pessoal preciso disso meio urgente, alguem sabe?
GOSTEI 0
Rjun
06/05/2005
Não conheço muito de firebird, mas não tem como você fazer uma função para rodar no servidor. Com um SELECT você pega a data mais próxima antes da data desejada e com outro você pega a data mais próxima depois da desejada. Ai você compara e retorna a data mais próxima
GOSTEI 0
Kotho
06/05/2005
então você quer a data mais próxima para traz, não é?
Se for, você pode fazer um SELECT meio doido, mais ou menos assim:
Se for, você pode fazer um SELECT meio doido, mais ou menos assim:
SELECT VALOR FROM TABELA_PRECO WHERE DATA = (SELECT MAX(TP2.DATA) FROM TABELA_PRECO TP2 WHERE TP2.DATA < DATA_DA_VENDA)
GOSTEI 0
Marioribeiro
06/05/2005
Não deu certo meu amigo, obrigado
GOSTEI 0
Kotho
06/05/2005
Colega,
Você poderia me dizer porque não deu certo??? Que valor retornou??? Era para funcionar...
Eu não coloquei o produto no select de exemplo que eu passei, será que não faltou isso?
ficaria assim:
Você poderia me dizer porque não deu certo??? Que valor retornou??? Era para funcionar...
Eu não coloquei o produto no select de exemplo que eu passei, será que não faltou isso?
ficaria assim:
SELECT VALOR FROM TABELA_PRECO WHERE DATA = (SELECT MAX(TP2.DATA) FROM TABELA_PRECO TP2 WHERE TP2.DATA < DATA_DA_VENDA AND TP2.PRODUTO = PRODUTO_DA_VENDA)
GOSTEI 0