Retornar soma de produtos por cliente
Olá estou com o seguinte desafio esta query
select row_number() over(order by A1_COD) as NUMBER,p.A1_COD,p.A1_NOME,p.A1_VEND,p.ULTCOMP_CLIENTE,p.B1_COD,p.B1_DESC,p.B2_QATU,p.B2_CM1,p.B2_VFIM1,p.B2_VATU1,p.D2_PRCVEN,p.D2_QUANT,p.ULTCOMP_PRODUTO_CLIENTE,p.TOTAL_MESES from SD2010,
(select A1_COD,A1_NOME,A1_VEND,A1_ULTCOM as ULTCOMP_CLIENTE,B1_COD,B1_DESC,B2_QATU,B2_CM1,B2_VFIM1,B2_VATU1,D2_PRCVEN,D2_QUANT,max(D2_EMISSAO) as ULTCOMP_PRODUTO_CLIENTE,datediff(mm,max(D2_EMISSAO),getdate()) as TOTAL_MESES from SB1010 as SB1
inner join SD2010 SD2 on D2_COD = B1_COD
inner join SB2010 SB2 on B2_COD = B1_COD
inner join SA1010 SA1 on A1_COD = D2_CLIENTE
where B2_QATU > 0 and (SA1.D_E_L_E_T_ <> '*' and SB1.D_E_L_E_T_ <> '*' and (SB2.D_E_L_E_T_ <> '*' and SD2.D_E_L_E_T_ <> '*' and (B1_TIPO = 'ME' and B1_COD not in (
select distinct D2_COD from SD2010
where D2_FILIAL = 01 and (D2_EMISSAO between dateadd(mm,-2,getdate()) and getdate() and D2_TIPO = 'N')))))
group by A1_COD,A1_NOME,A1_VEND,A1_ULTCOM,B1_COD,B1_DESC,B2_QATU,B2_CM1,B2_VFIM1,B2_VATU1,D2_QUANT,D2_PRCVEN) as p
where p.ULTCOMP_PRODUTO_CLIENTE between dateadd(yyyy,-8,getdate()) and dateadd(mm,-2,getdate())
group by p.ULTCOMP_PRODUTO_CLIENTE,p.TOTAL_MESES,p.A1_COD,p.A1_NOME,p.A1_VEND,p.ULTCOMP_CLIENTE,p.B1_COD,p.B1_DESC,p.B2_QATU,p.B2_CM1,p.B2_VFIM1,p.B2_VATU1,p.D2_PRCVEN,p.D2_QUANT
order by 2,6 desc;
retorna o seguintes valores
1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 35 3 20100319 95
2 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 24 4 20100728 91
3 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 26 3 20100812 90
4 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 27 4 20110331 83
5 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 45 1 20111028 76
6 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 35 1 20120316 71
queria fazer o seguinte somar em uma outra coluna chamada total, onde ele somasse todos os codigos do produtos que forem iguais e forem do mesmo cliente nesta coluna, mas quando eu faço isso ele soma de outros registros que nao aparecem neste select ficando assim
OBS: TOTAL é a segunda coluna
1 1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 35 3 20100319 95
2 1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 24 4 20100728 91
3 1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 26 3 20100812 90
4 1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 27 4 20110331 83
5 1 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 45 1 20111028 76
6 5 000000 CLIENTE PADRAO 000001 20161205 95002 PESO ADES BAIXO 5/10 60 EMB 50 3M 213 30,5 7869 6496,5 35 1 20120316 71
usei o count com o group by mas nao adianta alguem teria alguma solução pensei em fazer um laço mas nao sei se tem como pegar o valor do campo pela posição tentei fazer mas não consegui.Discussão (28)
Carregando comentários...