[firebase-br] Selecionar registro especifico
Nivaldo Martins
nivaldomart em gmail.com
Sáb Jan 9 03:14:27 -03 2010
olá helio utilize o comando iif
select
iif (:mes = 12, 800,iif(:mes<7,500,650)
from tabela
where
:mes = between extract(month from data_inicio) and extract(month from
data_final)
and
extract(year from data_inicio) = :ano
and
codigo = :cod
explicando o IIF ali faz o seguinte:
se o mês for igual a 12 retorna 800, se não for verifica se o mês é menor
que 7 (estará entre 1 e 6) e retorna 500, senão retorna 650 (indicativo que
o mês é maior que 7 e menor que 12 pois se chegar neste ponto mês não é
igual a 12)
como na sua estrutura o valor está armazenado
vc pode fazer assim:
select
a. valor
from
tabela a
where
a.codigo = :cod
and
a.ano = extract(year from data_inicio)
and
(
:mes = 12
or
:mes between extract(month from data_inicio) and extract(month from
data_final)
)
Espero ter ajudado
2010/1/8 Hélio Oliveira <hpensador em gmail.com>
> Boa tarde Colegas!
>
> Tenho uma tabela com a seguinte estrutura:
>
> codigo data_inicio data_final valor
> 10 02/01/2009 30/06/2009 500,00
> 10 01/07/2009 31/11/2009 650,00
> 10 01/12/2009 null 800,00
>
> No select irei passar mês, ano e código como paramentros.
>
> Se o mês e ano for estiver compreendido entre [1..6] o valor retornado
> deverá ser 500,00
> Se o mês e ano for estiver compreendido entre [7..11] o valor retornado
> deverá ser 650,00
> Se o mês e ano for maior que 12/2009 o valor retornado deverá ser 800,00
>
> Montei o seguinte select mais em testes não estou obtendo o resultado
> satisfatório.
>
> select a.valor
> from teste a
> where (extract(month from a.data_inicio) <= :mes
> and extract(year from a.data_inicio) = :ano)
> and a.codigo = :cod
>
>
> --
> []'s,
>
> Hélio Oliveira
> Analista de Sistemas
> Delphi Developer
> http://hpensador.blogspot.com/
> MSN - hpensador em hotmail.com
> Skype - hpensador
> (71) 9975-9176
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista