SQL Firebird - Clientes inativos

SQL

Firebird

22/03/2017

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

Curtidas 0

Melhor post

Huelbert Oliveira

Huelbert Oliveira

22/03/2017

Muito obrigado era justamente o que precisava
GOSTEI 1

Mais Respostas

Luiz Santos

Luiz Santos

22/03/2017

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
GOSTEI 0
Luiz Santos

Luiz Santos

22/03/2017

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
GOSTEI 0
POSTAR