Mysql - duvida sobre soma de colunar[Resolvido]

8 respostas
rockstorm

Boa tarde,
Estou com uma duvida,
Como faço para somar duas colunas do meu banco de dados…
Ex:

Campo valor, campo valor2

eu gostaria de somar os totais de cada campo…
grato

8 Respostas

maquiavelbona

A galera continua sem procurar. Depois reclamam que os chamam de preguiçosos.

Meio cérebro para a procura mysql sum
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

Quarto de cérebro para a procura mysql addition operator
http://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html

Galera, procurar não mata.

Até!

rockstorm

Boa tarde amigo…que respondeu acima…
Voce deve ter varios previlégios onde trabalha, ou trabalha em casa tomando um chazinho da tarde, assistindo sessão da tarde…
Existem empresas que restringem o acesso a VARIOS sites…e nós iniciantes, quando encontramos uma dificuldade deste tipo, recorremos aos FORUNS que são permitidos aqui…
Portanto o link:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html
Não pode ser acessado aqui da empresa…Claro que seu eu tivesse a acesso que você tem…com certeza não estaria encomodando os usuarios deste forum…
Mesmo assim, muito obrigado.

olhaomarcosaqui

Você pode fazer o seguinte select:

SELECT SUM(valor) FROM nome_tabela;

isso vai retornar a soma de todos os valores deste campo, se você quiser a soma dos dois campos, tente isso:

SELECT SUM(valor + valor2) FROM nome_tabela;

era isso que você precisava?

rockstorm

Obrigado olhaomarcosaqui…era isso que precisava

maquiavelbona

Quando instalaste o MySQL não recebeste a documentação junto? Pois aqui quando colocamos o banco de teste, veio documentação e tudo mais. Se perceberes, os links são da documentação OFICIAL.
Mas como procuraste no fórum, eu acho que não achaste nenhum tópico sobre isso.

Mas como eu sou o “cara que trabalha assistindo sessão da tarde”, acho que devo colar para você isso aqui:

http://dev.mysql.com/doc/refman/5.0/en/arithmetic-functions.html#operator_plus:
+

Addition:

mysql> SELECT 3+5;
-> 8


Agora seja um pouco criativo…

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_sum:
SUM([DISTINCT] expr)

Returns the sum of expr. If the return set has no rows, SUM() returns NULL. The DISTINCT keyword can be used in MySQL 5.0 to sum only the distinct values of expr.

SUM() returns NULL if there were no matching rows.

select a.a, sum(distinct b.b), sum(distinct c.c)
from a join b on a.id = b.aid
join c on a.id = c.id
where a.id = 1


Mais um pouco de criatividade e pronto, vais poder falar que estou tomando chazinho da tarde vendo “A lagoa azul”.

Agente ajuda e ainda tem que ler isso.

rockstorm

Realmente você é bom…bom mesmo…mas tente ser mais humilde para que esta começando…
Eu nunca utilizei este banco, porem não sei se a documentação vem junto…não tenho bola de cristal…e para você ver…o amigo acima…com algumas linhas me solucionou o problema…

Vamos lá rapaz…você consegue…tenha mais calma e paciência se esta tentando ajudar alguem…Você consegue!!!

Até…

mueller

só tenha cuidado de tratar os valores “null”

create table foo( foo int, bar int); insert into foo values(1,1); insert into foo values(1,null); insert into foo values(2,1); insert into foo values(2,null);

select foo+bar from foo; mysql> select foo+bar from foo; +---------+ | foo+bar | +---------+ | 2 | | NULL | | 3 | | NULL | +---------+ 4 rows in set (0,00 sec)

mysql> select ifnull(foo,0) + ifnull(bar,0) from foo; +-------------------------------+ | ifnull(foo,0) + ifnull(bar,0) | +-------------------------------+ | 2 | | 1 | | 3 | | 2 | +-------------------------------+ 4 rows in set (0,00 sec)

D

Comigo foi assim:
Eu consegui somar apenas os preços por data de producao mas eu gostaria que
fossem retornados números com apenas 2 casas após a vírgula.

select Codigo, sum(preco) 'Preços em 1 ano', dataproducao

FROM producao group by dataproducao

O campo preço é do tipo Float(5) mas retornam mais de 10 números :shock:

O preço não arredonda:

[img]http://i50.servimg.com/u/f50/11/80/81/44/erro0010.gif[/img]

Já resolvi, era só usar um ROUND(sum(preco)) que resolvia o caso.

até...

Criado 5 de julho de 2007
Ultima resposta 30 de set. de 2008
Respostas 8
Participantes 5