Aprenda PL/SQL

Clientes Inédito/Reativados

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Seg, 07 Ago 2017 3:09 pm

Pessoal,

Alguém já fez alguma análise, com uma estrutura básica de pedido (onde possui o código de cliente, data de emissão e status do pedido), onde mostra se o cliente foi "recuperado" (estava a mais de 180 dias sem comprar) ou se ele é um cliente inédito?

Estou com uma dificuldade enorme em fazer isso, e se alguém já fez algo neste sentido e puder me ajudar, agradeço.
jerry-sc

Mensagemem Ter, 08 Ago 2017 7:35 am

Bom dia jerry-sc,

Você pode criar uma função para identificar a última compra do cliente antes do pedido

Código: Selecionar todos
Function fn_ultima_compra (p_cd_cliente in number, p_dt_compra_atual in date) return varchar2


Um select mais ou menos assim:
Código: Selecionar todos
Select max(dt_compra) dt_compra
from   pedido ou notas
where  dt_compra < p_dt_compra_atual
and   cd_Cliente = p_cd_Cliente


Código: Selecionar todos
if dt_compra is compra is null then
  retorna recuperado
elsif (p_dt_compra_atual - dt_compra) > 180 then
  retorna inedito
else
  retorna regular
end if;
spernega
Localização: São Paulo - SP

Mensagemem Ter, 08 Ago 2017 7:36 am

alias
Código: Selecionar todos
if (p_dt_compra_atual - dt_compra) > 180 then
  retorna inedito
elsif dt_compra is compra is null then
  retorna recuperado
else
  retorna regular
end if;
spernega
Localização: São Paulo - SP



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes