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) >============================================== > > >
