Buscando meses em atraso - FIrebird

Firebird

23/04/2015

Olá pessoal!

uso o Firebird 2.5, e preciso buscar todos sócios que não pagam a mensalidade a mais de 3 meses.

Tabela aonde fica os Sócios = SOC_SOCIOS
Tabela aonde fica as mensalidades = MOV_MOVIMENTOS

( não sei se é util saber, mas na tabela MOV_MOVIMENTOS tem um campo com a data que a mensalidade foi paga, chama-se "RECEB_DATA".



Agradeço quem puder me ajudar!!
Marcos Roberto

Marcos Roberto

Curtidas 0

Melhor post

Randrade

Randrade

24/04/2015

Não trabalho com FireBird, então não sei se a possui essa função. No Sql Server você pode usar a função DATEIFF, passando como parâmetro "mês", campo da data, data atual, e no final, você coloca a condição, no seu caso, maior ou igual a 3.
Ficaria assim:

select * from soc_socios as s inner join  mov_movimentos as m on s.cod = m.socio_cod_id
and DATEDIFF ( MONTH , m.RECEB_DATA , GETDATE()) >= 3

GOSTEI 1

Mais Respostas

Marcos P

Marcos P

23/04/2015

Impossível te ajudar com esse nível de detalhes que você colocou.

Faz o seguinte, vai no Fiddle e coloca tuas tabelas e alguns registros pra teste.

Depois disso, passa o link que eu te ajudo.

T+
GOSTEI 0
Marcos Roberto

Marcos Roberto

23/04/2015

Olá Marcos!

desculpe...

então eu fui no site que vc me indicou e segue os links:
http://sqlfiddle.com/#!9/b7e50/1
http://sqlfiddle.com/#!9/96c13

Grato.
GOSTEI 0
Marcos P

Marcos P

23/04/2015

Marcos,

O esquema do Fiddle é colocar tudo em uma sessão só, criando as tabela e inserindo os dados na janela da esquerda e fazendo a query na janela da direita.

Dá uma olhada nesse exemplo.
GOSTEI 0
Marcos P

Marcos P

23/04/2015

E aí... resolveu ?
GOSTEI 0
Marcos Roberto

Marcos Roberto

23/04/2015

Bom dia pessoal!!

Resolvido!!!

a dica do Randrade funcionou, só tive que fazer uma adaptaçãozinha na select porque o GETDATE não funciona no Firebird.


Obrigado a todos!
GOSTEI 0
POSTAR