Trazer o resultado da soma de uma SQL para uma variável

09/05/2008

6

[color=red:c3970a075a]Título editado por Massuda Por favor, não use apenas letras maiúsculas no título/texto. Leia as :arrow: [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] do fórum.[/color:c3970a075a]

Sou Iniciante no Delphi, e ja gastei 783 horas procurando e nao acho o que quero. Mas com certeza aqui vou achar a soluçao.

Nao sei se teria que postar no forum SQL, mas aqui alguem vai saber:

Eu preciso de jogar numa variavel, o resultado da soma de uma SQL apenas um campo, como segue:

Aqui vai minha SELECT

_sql:= ´select sum(Val_nfiscal) As total ´ +
´ from pagamentos´ +
´ where codfornec = 16´ +
´ AND val_nfiscal > 1800´;

Está acontecedo que na Variavel TOTAL, nao fica nada armazenado
e se eu criar essa variavel, como Real, ou Integer, ela me retorna um valor, grande 2,13457893e308, que nao tem nada a ver...

se eu mudar o codfornec, para outro fornecedor, tambem me dá o mesmo resultado
O que estará errado aqui? se eu montar o Grid, fico com uma coluna de TOTAL, e retorna o Valor verdadeiro da Soma.
Eu preciso de utilizar apenas o valor dessa variavel, o Grid nao me interessa...
Agradeço muitoi se me ajudarem...
Jorge Ferreira


Responder

Posts

09/05/2008

Paulo

Primeiro, como vc declarou a variável TOTAL? Eu fiz aqui comigo e funcionou. Fiz assim usando ClientDataSet, mas pode ser Query e etc...:

var Total: Double; _sql:String; begin _sql:= ´select sum(Val_nfiscal) As total ´ + ´ from pagamentos´ + ´ where codfornec = 16´ + ´ AND val_nfiscal > 1800´; ClientDataSet.Close; ClientDataSet.CommandText := _sql; ClientDataSet.Open; Total := ClientDataSet.FieldByName(´total´).AsFloat; end;



Responder

09/05/2008

Pestana_

de que tipo é essa váriavel Total?

se for real:
Total := query.FieldByName(´total´).AsFloat;

se for inteiro:
Total := query.FieldByName(´total´).AsInteger;

você está utilizando mascara neste campo da query?


flw.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira