[firebase-br] ENC: Consulta Data X Data

Tecnobyte Informática temp2 em tecnobyte.com.br
Ter Jul 15 17:28:45 -03 2008


Embora seja possível filtrar por mês e ano usando a função EXTRACT, vale 
lembrar que este tipo de filtro não tira benefício de índice. Por isto se a 
performance for relevante, recomenda-se filtrar pela data diretamente, 
considerando o período do primeiro ao último dia do mês desejado. Exemplo:

Em vez de:

WHERE EXTRACT(MONTH FROM CampoData) || '/' || EXTRACT(YEAR FROM CampoData) = 
'1/2007'

é melhor fazer:

WHERE CampoData BETWEEN '01/01/2007' AND '01/31/2007'

NOTA! A diferença de performance será realmente relevante caso exista um 
índice para o campo de data em questão.

Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br


----- Original Message ----- 
From: "Mazzola SBC" <mazzola em sbctrans.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Tuesday, July 15, 2008 2:42 PM
Subject: [firebase-br] ENC: Consulta Data X Data


Amigo, Tente assim:

SELECT VALOR FROM TABELA_CALCULO
WHERE EXTRACT(MONTH FROM PERIODO)||'/'||EXTRACT(YEAR FROM PERIODO) =
'1/2007'

Mazzola
SBC Trans


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Marcelo Moreira
Enviada em: terça-feira, 15 de julho de 2008 15:09
Para: lista em firebase.com.br
Assunto: [firebase-br] Consulta Data X Data

Pessoal,

Boa tarde!



Tenho a seguinte situação:



TABELA_CALCULO

PERIODO  |  VALOR

01/2007          50,00

02/2007          60,00

03/2007          70,00

04/2007          80,00

05/2007          90,00





TABELA_RECEBIMENTO

DATA  |   VALOR

13/01/2007     300,00

15/02/2007     120,00

22/05/2007     13,00



Tenho de somar ao valor da tabela TABELA_RECEBIMENTO o calculo
correspondente ao valor da tabela TABELA_CALCULO referente a data correta. O
que acontece é que a data na tabela TABELA_CALCULO esta no formato mm/aaaa
já na tabela TABELA_RECEBIMENTO esta no formato dd/MM/aaaa.

Como eu poderia fazer esta consulta:



Select VALOR from TABELA_CALCULO where PERIODO = '13/01/2007'

So que aqui teria de eliminar o '13/'





Se alguém puder ajudar.



Abraços!





Mais detalhes sobre a lista de discussão lista