GARANTIR DESCONTO

Fórum Localizar a data mais próxima #280346

06/05/2005

0

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.


Marioribeiro

Marioribeiro

Responder

Posts

06/05/2005

Kotho

Qual o banco?


Responder

Gostei + 0

06/05/2005

Marioribeiro

FireBird 1.5


Responder

Gostei + 0

06/05/2005

Kotho

Me surgiu uma outra dúvida... você quer a mais próxima tanto menor quanto maior??? ou somente maior??? ou somente menor???


Responder

Gostei + 0

06/05/2005

Edilcimar

coloque between data - xdias e data + ydias


Responder

Gostei + 0

06/05/2005

Marioribeiro

poderia ser mais expecifico? o q são xdias e ydias, eu não tenho esses dados! e nem como especifica-los.


Responder

Gostei + 0

06/05/2005

Edilcimar

assim você vê os dados entre duas datas, a data desejada - xdias e a data desejada + ydias


Responder

Gostei + 0

06/05/2005

Marioribeiro

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.


Responder

Gostei + 0

06/05/2005

Marioribeiro

Pessoal preciso disso meio urgente, alguem sabe?


Responder

Gostei + 0

06/05/2005

Rjun

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


Responder

Gostei + 0

06/05/2005

Kotho

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:

SELECT
  VALOR
FROM
  TABELA_PRECO
WHERE
  DATA = (SELECT MAX(TP2.DATA)
     FROM TABELA_PRECO TP2
     WHERE TP2.DATA < DATA_DA_VENDA)



Responder

Gostei + 0

06/05/2005

Marioribeiro

Não deu certo meu amigo, obrigado


Responder

Gostei + 0

06/05/2005

Kotho

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:

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) 



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar