Anderson... voc� n�o citou qual o banco de dados que vc est�
trabalhando, mas em alguns bancos (SQL Server e Oracle por exemplo) ao
utilizar fun��es de agrega��o (SUM,AVG,etc...) ou realizar opera��es
aritm�ticas (+ - * / ) com valores nulos o resultado � NULL.... ou seja,
voc� deve verificar se o campo cont�m NULL e converte-lo para o valor 0
porque qualquer opera��o realizada com um campo cujo valor armazenado �
NULL retornar� NULL...

Ex.:
campo1        campo2
10                (NULL)

select CAMPO1 * CAMPO2     -->  RESULTADO = NULL    ( 10 * NULL = NULL )

select CAMPO1 + CAMPO2     -->  RESULTADO = NULL    ( 10 + NULL = NULL )

Nos banco citados, existem func�es especificas para voc� testar se o
valor do campo � NULL e substituir este valor por 0 (zero).... no SQL
Server ficaria assim:

select COALESCE( CAMPO1, 0 )   *   COALESCE( CAMPO2, 0 )    -->
RESULTADO = 0      (10 X 0 = 0 )
select COALESCE( CAMPO1, 0 )   +   COALESCE( CAMPO2, 0 )    -->
RESULTADO = 10     (10 + 0 = 0 )

No Oracle eu sei que tem uma fun��o q faz a mesma coisa, mas n�o me
lebro o nome dela.... agora vc precisa ver se este recurso est�
dispon�vel no banco que voc� usa....

[]�s

Sandro Cassajuz
[EMAIL PROTECTED]


Anderson de Oliveira Furtilho wrote:

> 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�osAnderson de Oliveira Furtilho

==============================================
Lista de Centura SQLWindows
Administrador : [EMAIL PROTECTED]
[ http://www.centuraexplorer.com ]
Para sair desta lista mande mensagem para:
[EMAIL PROTECTED] sem nada no Subject e
com o comando a seguir no corpo da msg:
"unsubscribe sqlwin" (sem as aspas)
==============================================

Responder a