Use a função nvl do Oracle: Select Sum( nvl(Valor1,0) + nvl(Valor2,0 ) + nvl(Valor3,0 ) + nvl( Valor4,0 ) ) from '+ ' BancoSoma where Nome = '+Chr(39)+NomeCliente+Chr(39)) Kleber "Anderson de Oliveira Furtilho" <[EMAIL PROTECTED]> on 29/02/2000 08:57:32 Please respond to [EMAIL PROTECTED] To: "sqlwin" <[EMAIL PROTECTED]> cc: (bcc: Kleber Sales/Procenge) Subject: [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
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
|