[firebase-br] SQL (complexa)

cury firebird cury.fb em gmail.com
Ter Maio 11 17:09:16 -03 2010


Talvez eu não tenha entendido muito bem o que voce quer.....estou achando 
complicado, pois a consulta deve ser em função da estrutura e não em função 
dos dados!
então nesse caso ficaria mais fácil trabalhar diretamente no sistema e não 
através do banco!

Se você puder explicar melhor o que está querendo... eu não compreendi muito 
bem !


--------------------------------------------------
From: "Hélio Oliveira" <hpensador em gmail.com>
Sent: Tuesday, May 11, 2010 1:09 PM
To: <lista em firebase.com.br>
Subject: [firebase-br] SQL (complexa)

> 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/
>
>
> ______________________________________________
> 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