Fazer calculo com o resultado do select

12/05/2016

0

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

Responder

Posts

13/05/2016

Claudio Lopes

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 
Responder

13/05/2016

Roberto

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
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar