Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

valeriabarros

Listar quantidade de pedidos por mês sem repetir cliente

Recommended Posts

Bom dia pessoal.

Tenho a seguinte query:

 

 
select v.Nome, COUNT(p.IdPedido) as PedidosPorMes, Mês = CASE MONTH(p.DtInicio1)
         WHEN 01 THEN 'JAN'
         WHEN 02 THEN 'FEV'
         WHEN 03 THEN 'MAR'
         WHEN 04 THEN 'ABR'
         WHEN 05 THEN 'MAI'
         WHEN 06 THEN 'JUN'
         WHEN 07 THEN 'JUL'
         WHEN 08 THEN 'AGO'
         WHEN 09 THEN 'SET'
         WHEN 10 THEN 'OUT'
         WHEN 11 THEN 'NOV'
         WHEN 12 THEN 'DEZ'
      END
from ExpedicaoPedido ep 
inner join PedidoNucleo p on ep.FkPedido = p.IdPedido 
inner join VwClientesUnificados v on p.NrCNPJCPFArea = v.CnpjCpf 
WHERE p.DtInicio1 BETWEEN '01/01/2014' and '29/03/2014' 
group by v.Nome, MONTH(p.DtInicio1)
 

Ela me retorna assim:

 

 

 
Nome                           PedidosPorMes                        Mês
David Bueno                    1                                   JAN
VALÉRIA BARROS                 1                                   JAN
VALÉRIA BARROS                 2                                   MAR
 

 

Isso atende uma parte do problema. Eu já sei quantos pedidos foram feitos por cada um desses clientes em cada mês do intervalo proposto, mas se trata de um relatório, e quanto menos eu precisar tratar no código, melhor.

 

 

Ela me lista a quantidade de pedidos feito por cliente em um intervalo de tempo (01/01/2014 a 29/03/2014). Mas preciso da listagem sem repetir os clientes.

Alguém tem alguma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ela me lista a quantidade de pedidos feito por cliente em um intervalo de tempo (01/01/2014 a 29/03/2014). Mas preciso da listagem sem repetir os clientes.

 

Se você precisa mostrar a coluna Mês, ele vai trazer duplicado, a não ser que você use o PIVOT para colocar este campo em um só.

O resultado seria mais ou menos isso:

Nome PedidosPorMes  MêsA         3         JAN,MARAjuda?        

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo como ...

select nome,
       sum(case when mes = '01' then 1 else 0 end) jan,
       sum(case when mes = '02' then 1 else 0 end) fev,
       ...
       sum(case when mes = '12' then 1 else 0 end) dez
from tabela
group by nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.