Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luan94

Moradores

Recommended Posts

Preciso fazer o select dos moradores que completam 4 anos nos proximos 6 meses, porém estou tendo algumas dificuldades com a condição do select(where). Depois de pesquisar algumas funções consegui chegar a tals resultado:

 

 

AND (SELECT MONTHS_BETWEEN(SYSDATE, DATA_DO_MORADOR) FUNCTION_MONTH_BETWEEN 
     FROM DUAL) >= 42 
AND (SELECT MONTHS_BETWEEN(SYSDATE, DATA_DO_MORADOR) FUNCTION_MONTH_BETWEEN 
     FROM DUAL) <= 48;

 

 

A ídeia e a seguinte. Faço a comparação de meses entre a data do sistema(sysdate) e o campo que estou usando, se o numero de meses forem maior que 42 e menor que 48, ele me retorna os registros, porém não esta aparecendo nada. E outro problema e que prociso dos moradores dos proximos 6 meses, e esta condição não atende isso. Se alguém souber como fazer isso de um jeito mais simples ou de outro jeito agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites


-- IDADE

 

FLOOR(MONTHS_BETWEEN(SYSDATE,DATA_DO_MORADOR)/12)

 



--TESTE

 

AND (FLOOR(MONTHS_BETWEEN(SYSDATE,DATA_DO_MORADOR)/12) = 4
     OR
     FLOOR(MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,6),DATA_DO_MORADOR)/12) = 4)

TENTE ISTO


Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, eu fiz assim. Tem como você me dizer se do jeito que eu fiz também está certo ou se e melhor usar o código que você mandou? Obrigado pela ajuda.

 

((SELECT MONTHS_BETWEEN((ADD_MONTHS(SYSDATE, + 6)), DATA_DO_MORADOR) FUNCTION_MONTH_BETWEEN FROM DUAL) >= 42

AND

(SELECT MONTHS_BETWEEN((ADD_MONTHS(SYSDATE, + 6)), DATA_DO_MORADOR) FUNCTION_MONTH_BETWEEN FROM DUAL) <= 48)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi este select na DUAL , faça direto tipo :

 

 

select *

from moradores

where (FLOOR(MONTHS_BETWEEN(SYSDATE,DATA_DO_MORADOR)/12) = 4      

           OR           

           FLOOR(MONTHS_BETWEEN(ADD_MONTHS(SYSDATE,6),DATA_DO_MORADOR)/12) = 4)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.