Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fkarol

Sum

Recommended Posts

Boa noite

O que preciso fazer, é somar tudo via comando SQL,

só que o problema é que os valores ou registros está utilizando a "," pra separar as casas decimais ...

Infelizmente não posso alterar isso no banco de dados

Tentei isso:

SELECT SUM(valor ) FROM vendas WHERE venda="1"

 

 

Mas ele me da um valor inteiro e não soma o que vem depois da virgula, existe alguma maneira de fazer ele somar tudo mesmo que tenha a , ?

 

Em php sei que podemos executar funções dentro da SQL por exemplo:

"SELECT SUM(REPLACE(valor, ',', '.')) FROM venda"

 

Mas em VB6 da pra fazer algo assism? ou tem outra solução

Vocês poderia me ajudar

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas em VB6 da pra fazer algo assism?

Dá, isso independe da linguagem. Vai executar no banco de dados mesmo.

 

 

Por curiosidade, qual o tipo do dado do BD?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o Firebird

poque eu to fazendo um programa so para agregar algumas funcionalidades ao sistema existente

 

ah mais uma vezes obrigado pela sua ajuda

 

bom dia

nao deu certo nao

tentei usar com o vb6 e da o seguinte erro

o driver ODBC nao oferece suporte para as propriedades solicitadadas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o seu códig, para vermos como está.

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo do codigo

 

Set oConexao = New ADODB.Connection
oConexao.Open ("DRIVER=Firebird/InterBase(r) driver; UID=SYSDBA;PWD=masterkey; DBNAME=c:/banco/banco.fdb")

strSQL = "SELECT SUM(REPLACE(valor, ',', '.')) FROM venda"
Dim strSQL As String
Set rs = New ADODB.Recordset
rs.Open strSQL, oConexao, adOpenKeyset, adLockPessimistic

 

 

 

obs: se eu faço uma query sem REPLACE funciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso deve ser alguma limitação do BD. Nao lembro deter mexido com o FireBird

 

Tenta assim:

-> Cria uma tabela temporária inserindo os valores com o REPLACE

SELECT REPLACE(valor, ',', '.') INTO #venda FROM venda

-> Faz a soma com a tabela temporária.

SELECT SUM(valor) FROM #venda

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.