somar tipo BCD ou FMTBCD

18/07/2008

1

O clientdataset com dbexpress traz os campos numeric do firebird como BCD ou FMTBCD, isso faz com que a função SUM(campo) do sql não funcione no quickreporter e no fortesreport.
Para soma-los tenho de criar um campo calculado do tipo float no clientdataset e jogar nele o valor do campo que quero somar.
Há alguma forma de fazer essa soma sem ter de criar uma variável ou campo calculado?
Fazer o SUM() funcionar com os campos originais ou fazer com que o clientdataset com dbexpress não os tragam como BCD ou FMTBCD?


Responder

Posts

18/07/2008

Catunda

Desculpem aí...
Cometi um pequeno engano no post.
Não é o SUM() utilizado no sql e sim qdo ele é utilizado no componente QRExpr do QuickReporter e o seu respectivo no FortesReporter.


Responder

19/07/2008

Joaoshi

Colega, faça um CAST no campo:

SELECT [b:45c0970b82]CAST(SUM(SeuCampo) AS FLOAT) [/b:45c0970b82] FROM SuaTabela;

Espero ter ajudado.


Responder

30/03/2009

Cd.karlh

Alterei o comendo para CAST( (SUM(O.TMPTPR)/60 ) as Float )
mas não tive sucesso.
Continua retornando valor truncado. A expressão aparece no oracle com 13,4222 por exemplo. E no TClientDataSet aparece 13. Truncou o valor.

Até consigo fazer aparecer com zeros decimais, mas valor é truncado...

Alguma dica a mais ?


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