Fórum Analiser movimento cliente #387973
05/10/2010
0
Negocio é o seguinte ...
O gerente da empresa deseja analisar a movimentação dos clientes dentro de um determinado ano dividido por trimestres. O que ele deseja é Cliente, Média de compras, e qual periodo se refere (o periodo seria a quinzena), segue um exemplo abaixo. *Possibilidade de escolha da média mínima
Cliente_-_Média__-_Periodo____________________
Cliente1 - 322,15 - 01-01 a 15-01 ou 1ª quinzena jan
Cliente1 - 101,10 - 15-03 a 31-03 ou 2ª qunizena mar
Cliente2 - 99,33 - 15-02 a 28-02 ou 2ª quinzena fev
Tenho as seguintes tabelas:
CLIENTE
CODCLI
NOMCLI
MOVIMENTO
DATA
CODCLI
TOTAL
Dados de entrada: ANO e PERIODO [1º trimestres,2º trimestres,3º trimestres,4º trimestres]
Acho que o caminho seria com store procedure, mas não tenho domínio para tal.
Desde já agradeço,
Eremita
Curtir tópico
+ 0
Responder
Posts
06/10/2010
Eremita
Tentando ...
1º Trimestre
Nome Média Média Média Média Média Média
Cliente______________01-15 Jan____16-31 Jan____01-15 Fev____16-28 Fev____01-15 Mar____16-30 Mar
#codigo select
cli.NOMCLI as NOMCLI,
case when mov.DATA between :p1 and :p2 then avg(mov.TOTAL) else 0 as 01-15 Jan end,
case when mov.DATA between :p3 and :p4 then avg(mov.TOTAL) else 0 as 16-31 Jan end,
case when mov.DATA between :p5 and :p6 then avg(mov.TOTAL) else 0 as 01-15 Fev end,
case when mov.DATA between :p7 and :p8 then avg(mov.TOTAL) else 0 as 16-28 Fev end,
case when mov.DATA between :p9 and :p10 then avg(mov.TOTAL) else 0 as 01-15 Mar end,
case when mov.DATA between :p11 and :p12 then avg(mov.TOTAL) else 0 as 16-31 Mar end
from
MOVIMENTO mov,
CLIENTE cli
where
mov.DATA between :p1 and :p12
cli.CODCLI = mov.CODCLI
group by
NOMCLI * Os parâmetros são criados com base no período escolhido
Nome Média Média Média Média Média Média
Cliente______________01-15 Jan____16-31 Jan____01-15 Fev____16-28 Fev____01-15 Mar____16-30 Mar
#codigo select
cli.NOMCLI as NOMCLI,
case when mov.DATA between :p1 and :p2 then avg(mov.TOTAL) else 0 as 01-15 Jan end,
case when mov.DATA between :p3 and :p4 then avg(mov.TOTAL) else 0 as 16-31 Jan end,
case when mov.DATA between :p5 and :p6 then avg(mov.TOTAL) else 0 as 01-15 Fev end,
case when mov.DATA between :p7 and :p8 then avg(mov.TOTAL) else 0 as 16-28 Fev end,
case when mov.DATA between :p9 and :p10 then avg(mov.TOTAL) else 0 as 01-15 Mar end,
case when mov.DATA between :p11 and :p12 then avg(mov.TOTAL) else 0 as 16-31 Mar end
from
MOVIMENTO mov,
CLIENTE cli
where
mov.DATA between :p1 and :p12
cli.CODCLI = mov.CODCLI
group by
NOMCLI * Os parâmetros são criados com base no período escolhido
Responder
Gostei + 0
06/10/2010
Aroldo Zanela
Colega,
O ideal mesmo seria um Data Warehousing + OLAP. Mas...
Coloca um script de insert para as duas tabelas aqui para a gente trabalhar sobre dados.
[]'s
AZ
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)