Anderson,
Acho que no exemplo que vc deu, os valores V2,V3,V4 contém NULL e não 0 (zero). Por isso é que o resultado apresentado não condiz com a verdade. Se vc estiver usando SQLServer use a função COALESCE.
 
Select sum( coalesce(Valor1, 0) + coalesce(Valor2, 0)
            + coalesce(Valor3, 0) + coalesce(Valor4, 0)  ) From ...
 
Esta função recupera o primeiro valor NÃO NULO da lista. Logo as colunas que estiverem NULAS serão substituídas por 0
 
 
-----Mensagem Original-----
Para: sqlwin
Enviada em: Terça-feira, 29 de Fevereiro de 2000 08:57
Assunto: [sqlwin] Sum em SQL, Estranho

Olá amigos da Lista,
 
Olha isto!!!
 
procedure TForm1.Button1Click(Sender: TObject);
var
        NomeCliente: String;
        ValorDaParcela: Extended;
begin
NomeCliente := Edit1.Text;
 
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add
('Select Sum(Valor1+Valor2+Valor3+Valor4) from '+
 ' BancoSoma where Nome = '+Chr(39)+NomeCliente+Chr(39));
 Query1.Open;
 
 ValorDaParcela := Query1.Fields[0].AsFloat;
 
 ShowMessage(FloatToStr(ValorDaParcela));

Problemas....
 
Se na Tabela estiver assim  Valor1 (10,00) , Valor2 (20,00), Valor3 (10,00), Valor4 (10,00) --- então ele da o Resultado (50,00).
 
Mas se a Tabela estiver assim Valor1(10,00), Valor2, Valor3, Valor4 --- O Resultado é zero (0), NÃO DEVERIA APARECER
(10,00) ?
 
Select Sum(Valor1+Valor2+Valor3+Valor4) , ele deveria somar 10,00 + 0,00 + 0,00 + 0,00 = 10,00, mas não ele mostra  (  0  )
 
Qualquer dica eu agradeço,
 
Abraços
Anderson de Oliveira Furtilho

 

Responder a