dnet-Script SQL para saber quais clientes não compraram nos últimos X dias

Cenário: Quero saber quais foram os clientes que não compraram nada da minha empresa nos últimos 90 dias. 

Para responder essa pergunta devemos olhar para duas tabelas, a tabela de PESSOA e a tabela de PEDIDO.

Na tabela PESSOA iremos pegar o COD_PESSOA e NOME, apenas de registro ATIVOS. Vamos dar o codinome para essa seleção de "p".

select p.cod_pessoa, p.nome from pessoa p where p.is_cliente = 'True' and p.status = 'Ativo'

Na tabela PEDIDO pegaremos o ID_CLIENTE onde o STATUS for igual a Faturado e que foi registrado nos últimos 90 dias. 

select ped.id_cliente from pedido ped where ped.status = 'Faturado' and cast(ped.faturado_em as date) between current_date-90 and current_date

Agora que temos essas duas informações vamos comparar, quais clientes não tem pedidos faturados nos últimos 90 dias, pegamos a todos os registros da CONDIÇÃO 1 que não tiveram registros na CONDIÇÃO 2.

select p.cod_pessoa, p.nome from pessoa p where p.is_cliente = 'True' and p.status = 'Ativo' << CONDIÇÃO 1

and p.cod_pessoa not in << COMPARAÇÃO

(select ped.id_cliente from pedido ped where ped.status = 'Faturado' and cast(ped.faturado_em as date) between current_date-90 and current_date) << CONDIÇÃO 2

Copie o exemplo abaixo e cole no /sqlbuilder.aspx na base do cliente.

select p.cod_pessoa, p.nome
from pessoa p
where p.is_cliente = 'True'
and p.status = 'Ativo'
and p.cod_pessoa not in (select ped.id_cliente from pedido ped where ped.status = 'Faturado' and cast(ped.faturado_em as date) between current_date-90 and current_date)

Veja o resultado

Traga mais campos, para tornar o relatório mais útil.