[firebase-br] SQL (complexa)
Hélio Oliveira
hpensador em gmail.com
Ter Maio 11 13:09:55 -03 2010
Boa tarde Colegas!
Não estou conseguindo chegar a um resultado satisfatório para obter um
determinado valor em uma consulta.
Tenho uma tabela "TESTE" com os seguintes campos:
matricula integer,
data_inicio date,
data_final date,
valor numeric(14,2)
A mesma esta populada com os seguinte valores
matricula data_inicio data_final valor
10 02/01/2009 30/06/2009 500,00
10 01/07/2009 30/11/2009 650,00
10 01/12/2009 <null> 800,00
O que preciso:
Se o mês informado estiver compreendido entre 1/2009 e 6/2009 o valor
retornado seja 500,00;
Se o mês informado estiver compreendido entre 7/2009 e 11/2009 o valor
retornado seja 650,00;
Se o mês informado for 12/2009 ou maior o valor retornado seja 800,00;
Estou tentando com a seguinte SQL mais o resultado não é satisfatório,
pois em alguns meses são retornados todos os registros.
select x.*
from teste x
where x.matricula = 10
and (((extract(month from x.data_inicio) = :mes
and extract(year from x.data_inicio) = :ano)
or (extract(month from x.data_inicio) <= :mes
and extract(year from x.data_inicio) >= :ano)))
--
[]'s,
Hélio Oliveira
Analista de Sistemas
Delphi Developer
http://hpensador.blogspot.com/
Mais detalhes sobre a lista de discussão lista