No Oracle a Fun��o � NVL, ou seja:

   NVL( CAMPO1, 0 )

   NVL SIGNIFICA NULL VALUES.

_____________________________________________________________
http://www.zipmail.com.br   O e-mail que vai aonde voc� est�.


_____________________________________________________________
Mensagem Original:
>------------------
>De: 'Sandro Cassajuz <[EMAIL PROTECTED]>'
>Para: '[EMAIL PROTECTED]'
>Assunto: 'Re: [sqlwin] Sum em SQL, Estranho'
>Data: Mar 02 2000 04:25:53
>
>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