FUN?ÃO SUM MYSQL

GOLVEIAR 29/03/2016 18:58:14
#460092
Fala galera blz. Estou fazendo um relatório de vendas e estou usando a função SUM para somar os campos mas acontece que o valor de moedas quando da centavos tipo 36,50 ou 36,80 ele retorna so 36,00 o campo na tabela esta como VarChar tamanho 30 que esta errado estou usando assim:

strSQL = [Ô]Select NomedoCliente,CodigodeBarra,NomedoProduto,ValorUnitario,DatadoCaixa,ValordeCompra, SUM(Quantidade),SUM(ValorTotaldeCompra),SUM(ValorTotal) FROM itens_pedidos_vendas Where Usuario=[ô][Ô] & strUsuario & [Ô][ô]and Caixa=[ô][Ô] & [Ô]Aberto[Ô] & [Ô][ô]Group by CodigodeBarra[Ô]
exemplo: se tenho 5 produtos valor 1,95 daria 9,75 ele retorna 9,00. Será que e o tipo de campo da tabela? Se alguém puder me ajudar agradeço.
ACCIOLLY 29/03/2016 19:11:26
#460093
Troque o campo de varchar pra double
GOLVEIAR 29/03/2016 19:26:59
#460097
ACCIOLLY Valeu pela resposta, mas ele ficou assim: 1,95 ficou 195. Qual o tamanho do decimal? Para exibir eu formatei assim: Format(Tb(5), [Ô]R$ ###,##0.00[Ô]) e mesmo assim ficou R$ 195,00 e era pra ser R$ 1,95
ACCIOLLY 29/03/2016 20:45:51
#460099
Use a função FormatNumber. Crie uma variável do tipo double e passe o valor recuperado do banco pra ela. A codificação abaixo testei no VBA do meu word e funfou direitin!

Dim n As Double
n = 25
MsgBox FormatNumber(n, 2)


Vai ser mostrado 25,00. Se for 25.65 vai ser mostrado 25,65. O que acontece é que o 2 no segundo parametro é a quantidade de casas decimais depois da vírgula
XLEGENDARY 29/03/2016 21:34:09
#460101
O Mysql ja faz isso, não use double use decimal a sua precisão é maior

um decimal 10,2 resolve seu problema
GOLVEIAR 29/03/2016 21:50:21
#460102
Mais uma vez obrigado pelas respostas. mas o problema e a virgula o sistema grava no db sempre com virgula vou ver o que consigo fazer. não entendo e porque a função SUM so soma certo com double.
GOLVEIAR 29/03/2016 22:26:39
#460105
Galera valeu pelas resposta mas consegui resolver. ficou assim:

strSQL = [Ô]Select NomedoCliente,CodigodeBarra,NomedoProduto,ValorUnitario,DatadoCaixa,ValordeCompra, SUM(Quantidade),SUM(CAST(REPLACE(ValorTotaldeCompra,[ô],[ô],[ô].[ô])as DECIMAL(18,2)) ),SUM(CAST(REPLACE(ValorTotal,[ô],[ô],[ô].[ô])as DECIMAL(18,2)) ) FROM itens_pedidos_vendas Where Usuario=[ô][Ô] & strUsuario & [Ô][ô]and Caixa=[ô][Ô] & [Ô]Aberto[Ô] & [Ô][ô]Group by CodigodeBarra[Ô]

o campo mysql ficou como varchar mesmo.

Abraços.
Tópico encerrado , respostas não são mais permitidas