[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