Fazer calculo com o resultado do select

MySQL

12/05/2016

Como posso fazer um calculo no select abaixo?
Fiz as somas das quantidades e dos valores para colocar no relatório, agora preciso pegar essas somas e fazer um saldo para criar essas colunas no relatório.

Ficaria assim:

Produto - Entrada - Saída - Defeito - Saldo Estoque (esse campo que preciso calcular)

O calculo seria assim:

qtd_tipo_0 - qtd_tipo_1 - qtd_tipo_2
e

total_tipo_0 - total_tipo_1 - total_tipo_2


SELECT
cat.id,
cat.nome,
SUM( IF( mov.tipo = 0, mov.qtd, 0 ) ) AS qtd_tipo_0,
SUM( IF( mov.tipo = 0, mov.total, 0 ) ) AS total_tipo_0,
SUM( IF( mov.tipo = 1, mov.qtd, 0 ) ) AS qtd_tipo_1,
SUM( IF( mov.tipo = 1, mov.total, 0 ) ) AS total_tipo_1,
SUM( IF( mov.tipo = 2, mov.qtd, 0 ) ) AS qtd_tipo_2,
SUM( IF( mov.tipo = 2, mov.total, 0 ) ) AS total_tipo_2
FROM lc_movimento AS mov
INNER JOIN lc_cat AS cat
ON cat.id = mov.cat
GROUP BY cat.nome ASC
Roberto

Roberto

Curtidas 0

Respostas

Claudio Lopes

Claudio Lopes

12/05/2016

Roberto, pode explicar melhor?, o que eu entendi é que vc precisa calcular o campo saldo, porém, não ficou claro qual operação aritmética a ser usada, outra não entendi a regra de negócio para o trecho
SUM( IF( mov.tipo = 0, mov.qtd, 0 ) ) AS qtd_tipo_0,
SUM( IF( mov.tipo = 0, mov.total, 0 ) ) AS total_tipo_0,
SUM( IF( mov.tipo = 1, mov.qtd, 0 ) ) AS qtd_tipo_1,
SUM( IF( mov.tipo = 1, mov.total, 0 ) ) AS total_tipo_1,
SUM( IF( mov.tipo = 2, mov.qtd, 0 ) ) AS qtd_tipo_2,
SUM( IF( mov.tipo = 2, mov.total, 0 ) ) AS total_tipo_2 
GOSTEI 0
Roberto

Roberto

12/05/2016

Din, é um sistema de estoque, esse relatório será para controlar o saldo do estoque onde o tipo qtd_tipo_0 é entradas o tipoqtd_tipo_1 é saídas e o tipo qtd_tipo_2 são outras saídas.

Na minha tabela de movimento eu registro todas as compras e saídas por item por isso que ele está somando por tipo, agora só preciso pegar esse resultado da soma por tipo que o select faz e fazer o saldo que seria assim:

qtd_tipo_0 - qtd_tipo_1 - qtd_tipo_0 = Saldo do estoque

Esqueci de mencionar meu banco é Mysql
GOSTEI 0
POSTAR