SUM retornando valor errado

Delphi

15/05/2006

Olá pessoal!
Estou tentando fazer esta consulta:
SELECT SUM(cardup.dpsaldo) total, MAX(cardup.dpvence) Ultimo, MIN(cardup.dpvence) primeiro, cliente.nomecliente, cliente.codigocliente FROM
cardup , CLIENTE join CARDUP on CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE
WHERE
cardup.dpcodigocliente = cliente.codigocliente
GROUP BY cliente.nomecliente , cliente.codigocliente

mas ele me retorna os valores errados. tenho estes dados na tabela cardup, contas a receber
dp saldo cliente
500,00 572
900,00 546
500,00 1089

e ele retorna assim
sum cliente
1500,00 572
2700,00 546
1500,00 1089

Ele pega o sum e multiplica pelo numero de registros da tabela car, porque? se eu coloco mais um registro de outro cliente na tabela, o sum que daria 500 dá 2000!

Que estou fazendo de errado?

Agradeço desde já qualquer ajuda!


Jorgerock

Jorgerock

Curtidas 0

Respostas

Jorgerock

Jorgerock

15/05/2006

Apareceu postado duas vezes, mas é que na hora de enviar a pagina não ia e eu cliquei de novo em enviar!
Desculpas aos moderadores!


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

15/05/2006

acho que há tabelas demais na sua instrução (além de um where desnecessário). tente assim:
SELECT
  SUM(cardup.dpsaldo) total,
  MAX(cardup.dpvence) Ultimo,
  MIN(cardup.dpvence) primeiro,
  cliente.nomecliente,
  cliente.codigocliente
FROM 
  cardup 
inner join
  CLIENTE on (CLIENTE.CODIGOCLIENTE = CARDUP.DPCODIGOCLIENTE)
GROUP BY
  cliente.nomecliente,
  cliente.codigocliente



GOSTEI 0
Jorgerock

Jorgerock

15/05/2006

Olá amigo! Deu certo, sem problema, obrigado pela atenção!
Um forte abraço!


GOSTEI 0
POSTAR