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
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
Curtir tópico
+ 0
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
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
Clique aqui para fazer login e interagir na Comunidade :)