somar tipo BCD ou FMTBCD
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?
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?
Catunda
Curtidas 0
Respostas
Catunda
18/07/2008
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.
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.
GOSTEI 0
Joaoshi
18/07/2008
Colega, faça um CAST no campo:
SELECT [b:45c0970b82]CAST(SUM(SeuCampo) AS FLOAT) [/b:45c0970b82] FROM SuaTabela;
Espero ter ajudado.
SELECT [b:45c0970b82]CAST(SUM(SeuCampo) AS FLOAT) [/b:45c0970b82] FROM SuaTabela;
Espero ter ajudado.
GOSTEI 0
Cd.karlh
18/07/2008
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 ?
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 ?
GOSTEI 0