Usuário com melhor resposta
Duvida Transact

Pergunta
-
Pessoal,
tenho uma seguinte query onde eu listo todos os pedidos com seus valores para cada CNPJ .
O que eu preciso é trazer o valor total dos pedidos para cada CNPJ, porem mesmo com a clausula HAVING ele me traz registros duplicados.
select PV.Pedvendanum,
E.Entcod,
E.Entnome,
e.EntCpfCgc,
SUM (PV.PedVendaValMerc) as Total
from ped_venda as PV
inner join entidade as E
on PV.entcod = E.entcod
Where entcpfcgc IN ('0000000000000', '1111111111111', '222222222222222',
'33333333333333', '4444444444444', '5555555555555', '6666666666666666')
group by PV.Pedvendanum,E.Entcod,E.Entnome,e.EntCpfCgc
HAVING Sum(PedVendaValMerc) > 00000575 GE WATER & PROCESS TECHNOL DO BRAS LTDA 0000000000000 9000.00
0000575 GE WATER & PROCESS TECHNOL DO BRAS LTDA 0000000000000 7978.11
0001107 DU PONT DO BRASIL S/A 1111111111111 2988.00
0001107 DU PONT DO BRASIL S/A 1111111111111 4778.00
0001107 DU PONT DO BRASIL S/A 1111111111111 502.45
0001107 DU PONT DO BRASIL S/A 1111111111111 1711.00
0001107 DU PONT DO BRASIL S/A 1111111111111 5698.00
- Editado Renata Cardoso segunda-feira, 9 de abril de 2012 15:43
Respostas
-
Boa tarde,
Renata,
O problema não é a clausula HAVING, assim como o Adriano, também reparei que você está retornando e agrupando pelo número do pedido de venda, apesar de você não ter postado este dado nos seus resultados, provavelmente o "problema" está ai.
Verifique se estão retornando números de pedidos de vendas distintos para cada um dos registros "duplicados", pois repare que os valores retornados também são diferentes e provavelmente são referentes a cada um desses pedidos.
Caso você queira retornar o valor total dos pedidos de venda para cada cliente, tente fazer desta forma:
SELECT PV.Pedvendanum,E.Entcod,E.Entnome,E.EntCpfCgc,SUM(PV.PedVendaValMerc) AS Total
FROM ped_venda AS PV
INNER JOIN entidade AS E
ON PV.entcod = E.entcod
WHERE E.entcpfcgc IN ('0000000000000', '1111111111111', '222222222222222','33333333333333', '4444444444444', '5555555555555', '6666666666666666')
GROUP BY PV.Pedvendanum,E.Entcod,E.Entnome,e.EntCpfCgc
HAVING SUM(PV.PedVendaValMerc) > 0
Att,
Rafael Godoi Sabadin
http://www.linkedin.com/in/rafaelgodoisabadin
Classifique as respostas. O seu feedback é essencial.- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 10 de abril de 2012 18:43
- Marcado como Resposta Renata Cardoso terça-feira, 10 de abril de 2012 18:46
Todas as Respostas
-
Boa tarde Renata,
Pelo que entendi do seu resultado( conforme você moostrou acima) me parece que só retornou 4 colunas de dados, sendo que o select solicita 5.
Neste caso a outra coluna ( acho que a coluna PEDVENDANUM ) esta com dados nulos?
Abçs,
Adriano
-
Boa tarde,
Renata,
O problema não é a clausula HAVING, assim como o Adriano, também reparei que você está retornando e agrupando pelo número do pedido de venda, apesar de você não ter postado este dado nos seus resultados, provavelmente o "problema" está ai.
Verifique se estão retornando números de pedidos de vendas distintos para cada um dos registros "duplicados", pois repare que os valores retornados também são diferentes e provavelmente são referentes a cada um desses pedidos.
Caso você queira retornar o valor total dos pedidos de venda para cada cliente, tente fazer desta forma:
SELECT PV.Pedvendanum,E.Entcod,E.Entnome,E.EntCpfCgc,SUM(PV.PedVendaValMerc) AS Total
FROM ped_venda AS PV
INNER JOIN entidade AS E
ON PV.entcod = E.entcod
WHERE E.entcpfcgc IN ('0000000000000', '1111111111111', '222222222222222','33333333333333', '4444444444444', '5555555555555', '6666666666666666')
GROUP BY PV.Pedvendanum,E.Entcod,E.Entnome,e.EntCpfCgc
HAVING SUM(PV.PedVendaValMerc) > 0
Att,
Rafael Godoi Sabadin
http://www.linkedin.com/in/rafaelgodoisabadin
Classifique as respostas. O seu feedback é essencial.- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 10 de abril de 2012 18:43
- Marcado como Resposta Renata Cardoso terça-feira, 10 de abril de 2012 18:46