[firebase-br] Fw: Select com 5 dias

Gilson Silva gilson em sfssistemas.com.br
Seg Jun 1 07:32:01 -03 2009


    Bom dia amigo,  deixa ver se entendi, em sua tabela de clientes vc
guarda o DIA, e não a data como alguns pensaram desta forma na hora de
sugerir os selects, e o seu problema é justamente na virada do mês, certo?

Eu fiz o seguinte:
  - criei a seguinte tabela:

create table teste_cli
(id integer not null,
 cliente varchar(50),
 dia integer);

O select  abaixo abrange o seu problema, ele trata a virada do mês e
acrescentei para a virada do ano, testei aqui e funcionou perfeitamente,
espero ter ajudado.

select CLIENTE, dia,
       case
         when (dia >= extract(day from current_date)) then
            cast((DIA||'.'||extract(month from 
current_date)||'.'||extract(year from current_date)) as date) /*--  
vencimento no mesmo mês --*/
         else
           case (extract(month from current_date))
             when 12 then cast((DIA||'.01.'||cast(extract(year from 
current_date)+1 as varchar(4))) as date) /*-- virada do ano --*/
             else
               cast((DIA||'.'||cast(extract(month from current_date)+1 AS 
VARCHAR(2))||'.'||extract(year from current_date)) AS date)/*-- mesmo ano, 
prox mês --*/
           end
       end proximo_vencimento
from teste_cli
where (case
         when (dia >= extract(day from current_date)) then
            cast((DIA||'.'||extract(month from 
current_date)||'.'||extract(year from current_date)) as date)
         else
           case (extract(month from current_date))
             when 12 then cast((DIA||'.01.'||cast(extract(year from 
current_date)+1 as varchar(4))) as date)
             else
               cast((DIA||'.'||cast(extract(month from current_date)+1 AS 
VARCHAR(2))||'.'||extract(year from current_date)) AS date)
           end
       end) <= current_date + 5

--------------------------------------------------------------------------------------------------------
Gilson Silva
Jaboatão - PE







Mais detalhes sobre a lista de discussão lista