Usuário com melhor resposta
USAR WHERE EM UMA COLUNA QUE FOI CRIADA A PARTIR DE UMA CONSULTA.

Pergunta
-
OLÁ AMIGOS...
ESTOU TENDO UM PROBLEMINHA EM FILTRAR UM VALOR QUE ESTÁ EM UMA COLUNA CRIADA A PARTIR DE UMA CONSULTA, CONFORME MOSTRA ABAIXO:
SELECT b.codigo, b.REFERENCIA, b.NOME AS "DESCRIÇÃO", SUM(A.QUANT) as VENDA, D.LOJA AS ESTOQUE, B.PRECO_COMPRA AS "PREÇO COMPRA",
B.IPICOMPRA AS IPI, SUM(A.QUANT)-(D.LOJA)+1 AS SUGESTAO,
((B.PRECO_COMPRA*B.IPICOMPRA/100+B.PRECO_COMPRA)*(SUM(A.QUANT)-(D.LOJA)+1))AS "TOTAL SUGESTÃO",
B.DT_ULTIMACOMPRA AS "ULTIMA COMPRA"
FROM SAIDA_PRODUTO a
inner join PRODUTO b
on a.ID_PRODUTO = b.ID
inner join saida c
on a.id_saida = c.id
INNER JOIN PRODUTO_ESTOQUE D
ON A.ID_PRODUTO = D.ID_PRODUTO
INNER JOIN PESSOA E
ON B.ID_FORNECEDOR = E.ID
where
E.NOME LIKE '%SESTINI%'
AND C.DATA >= '01.12.2017' AND C.DATA <= '01.04.2018'
AND C.TIPO IN ('NCE','CF')
AND B.ELIMINADO = 'N'
AND A.CANCELADO = 'N'
group by CODIGO, "DESCRIÇÃO" , ESTOQUE, REFERENCIA, B.PRECO_COMPRA, IPI, "ULTIMA COMPRA"
ORDER BY VENDA DESC###FIM###
ESTÁ ME RESULTANDO O SEGUINTE:
PORÉM PRECISO FILTRAR A COLUNA SUGESTÃO PARA QUE SÓ MOSTRE OS VALORES >= 0
AGRADEÇO SE ALGUÉM PODER ME AJUDAR.
Respostas
-
Olá!
Tente assim, adicionando a cláusula HAVING:
SELECT b.codigo, b.referencia, b.nome AS "DESCRIÇÃO", Sum(A.quant) AS VENDA, D.loja AS ESTOQUE, B.preco_compra AS "PREÇO COMPRA", B.ipicompra AS IPI, Sum(A.quant) - ( D.loja ) + 1 AS SUGESTAO, ( ( B.preco_compra * B.ipicompra / 100 + B.preco_compra ) * ( Sum(A.quant) - ( D.loja ) + 1 ) )AS "TOTAL SUGESTÃO", B.dt_ultimacompra AS "ULTIMA COMPRA" FROM saida_produto a INNER JOIN produto b ON a.id_produto = b.id INNER JOIN saida c ON a.id_saida = c.id INNER JOIN produto_estoque D ON A.id_produto = D.id_produto INNER JOIN pessoa E ON B.id_fornecedor = E.id WHERE E.nome LIKE '%SESTINI%' AND C.data >= '01.12.2017' AND C.data <= '01.04.2018' AND C.tipo IN ( 'NCE', 'CF' ) AND B.eliminado = 'N' AND A.cancelado = 'N' GROUP BY codigo, "descrição", estoque, referencia, B.preco_compra, ipi, "ultima compra" HAVING (Sum(A.quant) - ( D.loja ) + 1) >= 0 ORDER BY venda DESC
Espero que ajude. Bom trabalho!
- Marcado como Resposta ABRÃOHITO MENEZES terça-feira, 4 de setembro de 2018 18:57
Todas as Respostas
-
ABRÃOHITO HENRIQUE,
Basta você colocar na cláusula WHERE antes do "group by" a letra referente a tabela na qual se encontra o campo "VALORES" A LINHA ABAIXO.
Exemplo (NÃO SEI SE ESTÁ NA TABELA DA LETRA "B", mas deve ser pois é a tabela "PRODUTO" ou talvez "D - PRODUTO_ESTOQUE"):
AND B.VALORES >= 0
Vai ficar assim:
SELECT b.codigo, b.REFERENCIA, b.NOME AS "DESCRIÇÃO", SUM(A.QUANT) as VENDA, D.LOJA AS ESTOQUE, B.PRECO_COMPRA AS "PREÇO COMPRA", B.IPICOMPRA AS IPI, SUM(A.QUANT)-(D.LOJA)+1 AS SUGESTAO, ((B.PRECO_COMPRA*B.IPICOMPRA/100+B.PRECO_COMPRA)*(SUM(A.QUANT)-(D.LOJA)+1))AS "TOTAL SUGESTÃO", B.DT_ULTIMACOMPRA AS "ULTIMA COMPRA" FROM SAIDA_PRODUTO a inner join PRODUTO b on a.ID_PRODUTO = b.ID inner join saida c on a.id_saida = c.id INNER JOIN PRODUTO_ESTOQUE D ON A.ID_PRODUTO = D.ID_PRODUTO INNER JOIN PESSOA E ON B.ID_FORNECEDOR = E.ID where E.NOME LIKE '%SESTINI%' AND C.DATA >= '01.12.2017' AND C.DATA <= '01.04.2018' AND C.TIPO IN ('NCE','CF') AND B.ELIMINADO = 'N' AND A.CANCELADO = 'N' AND B.VALORES >= 0 group by CODIGO, "DESCRIÇÃO" , ESTOQUE, REFERENCIA, B.PRECO_COMPRA, IPI, "ULTIMA COMPRA" ORDER BY VENDA DESC
[]'s,
Fabio I.
FABIO, BOATARDE.
A COLUNA SUGESTAO É A SOMA O RESULTADO DE DUAS TABELAS ( SUM(A.QUANT)-(D.LOJA)+1 AS SUGESTAO)
-
Olá!
Tente assim, adicionando a cláusula HAVING:
SELECT b.codigo, b.referencia, b.nome AS "DESCRIÇÃO", Sum(A.quant) AS VENDA, D.loja AS ESTOQUE, B.preco_compra AS "PREÇO COMPRA", B.ipicompra AS IPI, Sum(A.quant) - ( D.loja ) + 1 AS SUGESTAO, ( ( B.preco_compra * B.ipicompra / 100 + B.preco_compra ) * ( Sum(A.quant) - ( D.loja ) + 1 ) )AS "TOTAL SUGESTÃO", B.dt_ultimacompra AS "ULTIMA COMPRA" FROM saida_produto a INNER JOIN produto b ON a.id_produto = b.id INNER JOIN saida c ON a.id_saida = c.id INNER JOIN produto_estoque D ON A.id_produto = D.id_produto INNER JOIN pessoa E ON B.id_fornecedor = E.id WHERE E.nome LIKE '%SESTINI%' AND C.data >= '01.12.2017' AND C.data <= '01.04.2018' AND C.tipo IN ( 'NCE', 'CF' ) AND B.eliminado = 'N' AND A.cancelado = 'N' GROUP BY codigo, "descrição", estoque, referencia, B.preco_compra, ipi, "ultima compra" HAVING (Sum(A.quant) - ( D.loja ) + 1) >= 0 ORDER BY venda DESC
Espero que ajude. Bom trabalho!
- Marcado como Resposta ABRÃOHITO MENEZES terça-feira, 4 de setembro de 2018 18:57
-