SQL Firebird - Clientes inativos

22/03/2017

0

Boa tarde

Estou batendo cabeça pra fazer um select onde devo filtrar somente os clientes que não compram a mais de 2 anos.

Preciso informar os dados:
ID_CLIENTE, NOME, ENDERECO, TELEFONE, DATA_ULTIMA_COMPRA

Tabela

CADCLIENTES (ID_CLIENTE, NOME, ENDERECO, TELEFONE)

MOVVENDAS (ID_VENDA, ID_CLIENTE, DATA)

Agradeço qualquer ajuda
Huelbert Oliveira

Huelbert Oliveira

Responder

Post mais votado

22/03/2017

Muito obrigado era justamente o que precisava

Huelbert Oliveira

Huelbert Oliveira
Responder

Mais Posts

22/03/2017

Luiz Santos

Huelbert, você vai ter que fazer isso em duas etapas.
Primeiro precisa saber qual a data da ultima compra dos clientes.
Ai você vai conseguir pegar os clientes que não comprar há mais de 2 anos.


SELECT CCL.ID_CLIENTE
     , CCL.NOME
     , CCL.ENDERECO
     , CCL.TELEFONE
     , DUV.DATA AS DATA_ULTIMA_COMPRA
  FROM CADCLIENTES AS CCL
       INNER JOIN (SELECT ID_CLIENTE, MAX(DATA) AS DATA 
                     FROM MOVVENDAS) AS DUV
          ON CCL.ID_CLIENTE = DUV.ID_CLIENTE
 WHERE DUV.DATA <= '2015-03-22'



Não querendo ser preguiçoso, mas já sendo, coloquei a data de hoje -2 anos manualmente...rs

Grande abraço
Responder

22/03/2017

Luiz Santos

Apenas corrigindo, esqueci do Group By no SQL interno (do FROM)


SELECT CCL.ID_CLIENTE
     , CCL.NOME
     , CCL.ENDERECO
     , CCL.TELEFONE
     , DUV.DATA AS DATA_ULTIMA_COMPRA
  FROM CADCLIENTES AS CCL
       INNER JOIN (SELECT ID_CLIENTE, MAX(DATA) AS DATA 
                     FROM MOVVENDAS
                    GROUP BY ID_CLIENTE) AS DUV
          ON CCL.ID_CLIENTE = DUV.ID_CLIENTE
 WHERE DUV.DATA <= '2015-03-22'



Fui preguiçoso até demais...rs

Grande abraço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar