Array
(
)

Jogar Soma em um componente LABEL?

Rscrj
   - 20 set 2004

Boa tarde para todos, estou precisando fazer um SUM em um campo de uma tabela e gostaria de que o valor fosse retornado para um componente LABEL que tenho no meu form.

Como posso fazer isso acontecer?

Sei que o sql que tenho de fazer é:

´ select valorpago, sum(valorpago) from remessabanco ´

Mas até ai eu não estou conseguindo pegar o valor total do somatório e nem mesmo levar esse valor para o campo que estou querendo ....

Agradeço pela ajuda de todos ....


Paulo_amorim
   - 20 set 2004

Olá

Seria bom renomear o campo para facilitar

#Código

select valorpago, sum(valorpago) soma from remessabanco


Para pegar isso, faça

#Código
DataSet.FieldByName(´soma´).AsString


Espero que ajude
Até+


Vinicius2k
   - 20 set 2004

Colega,

Não faz muito sentido trazer o próprio campo e sua soma... pra dizer a verdade, para mim, a instrução está errada, pq vc teria que agrupar pelo primeiro campo que seria o próprio VALORPAGO, o que não justifica somá-lo...

No meu entender instruções corretas seriam :
#Código

select sum(VALORPAGO) as SOMA from REMESSABANCO
{ ou :}
select sum(VALORPAGO) SOMA from REMESSABANCO
{ ou, simplemente : }
select sum(VALORPAGO) from REMESSABANCO

No primeiro e segundo código vc atribuiu ao resultado um álias ´SOMA´ que pode ser acessado com :
#Código
SuaQuery.FieldByName(´SOMA´).AsFloat;

No terceiro código vc não atribuiu nenhum álias, então o TField terá o nome da função utilizada, no caso, ´SUM´ :
#Código
SuaQuery.FieldByName(´SUM´).AsFloat;

Estou usando AsFloat supondo que VALORPAGO será do tipo NUMERIC ou DOUBLE, se fosse INTEGER vc usaria AsInteger.

Para exibir no seu label vc pode usar :
#Código
Label1.Caption:= SuaQuery.FieldByName(´SOMA´).AsString;


T+


Paulo
   - 20 set 2004

Poderia formatar o Caption do label assim para moeda, caso valor total fosse moeda:
Label1.Caption:= FloatToStrF(SuaQuery.FieldByName(´SOMA´).AsFloat,ffCurrency,12,2);


Rscrj
   - 21 set 2004

Senhores agradeço pela ajuda disponibilizada e vou tentar todas as formas indicadas.


Obrigado ...
Rafael Cabral