Duvida com MySQL sobre soma de colunas

23/11/2018

17

Bom dia galera, estou um dúvida, olhem abaixo:

Coluna A Coluna B
$12,50 $12,50
$8,00 $20,50
$9,60 $30,10
$33,26 xxxxxx
$54,12 xxxxxx
$30,50 xxxxxx

O que preciso fazer aqui na empresa é o seguinte, a primeira linha da coluna A deve se repetir na coluna B, depois o valor que está na coluna B deve somar com a segunda linha da A, e assim sucessivamente.
Não sei como fazer isso e não sei se é possível, estou usando o MySQL e estou com muitas dúvidas, no caso preciso fazer isso em um select.

Alguém tem algum dica do que posso fazer, estou desesperado galera.

Valeu a todos, abraços.
Responder

Post mais votado

23/11/2018

Tá, mas o que define uma linha? É uma data?
Se for uma data, pode ser algo assim:
select
  m1.data, sum(m1.valor) valor,
  coalesce((select sum(m2.valor) from movimento m2 where m2.data <= m1.data),0) saldo
from movimento m1
group by m1.data
order by m1.data

Responder

Mais Posts

23/11/2018

Fernando Wahl

Emerson, valeu pela dica mas deu certo.
Na realidade é pelo ID que vou verificar.

Mas assim, se trouxer um sum no select principal ele traz apenas uma linha e não é isso que preciso, preciso que traga a cada linha o valor somado como expliquei antes, não se isso é possível.

Valeu. Abraços...
Responder
tente assim:
select
  m1.ID, m1.VALOR,
  coalesce((select sum(m2.VALOR) from movimento m2 where m2.ID <= m1.ID),0) saldo
from movimento m1
order by m1.ID
Responder

23/11/2018

Fernando Wahl

Cara, vc é o cara, meu amigo , muito obrigado, é isso mesmo.
eu consegui entender o que vc fez ali, apliquei a minha tabela e deu certo, cara muito obrigado mesmo.
Responder

20/11/2020

Orlando Rocha

Como inserir somar valores no MySQL
Boa trade!

E possível inserir um metodo para que o proprio mysql faca soma de determinadas colunas?

tenho um coluna com nome "total".
quero que essa comuna total receba a soma das coluna A e B.
e que essa soma se realiza toda vez que eu enviar novos registros.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar