Erro na execução de um codigo em SQL
30/10/2015
0
SELECT ITEVENDAS.CODIGO,
ESTOQUE.NOME,
SUM(ITEVENDAS.QTD) AS QTD_VENDA,
AVG(ESTOQUE.PRECO_CUSTO) AS MEDIA_PRECO_CUSTO,
AVG(ITEVENDAS.PRECO) AS MEDIA_PRECO_VENDA,
SUM(ITEVENDAS.QTD) * AVG(ESTOQUE.PRECO_CUSTO) AS TOTAL_CUSTO_MEDIO,
SUM(ITEVENDAS.QTD) * AVG(ITEVENDAS.PRECO) AS TOTAL_PRECO_VENDA,
(SUM(ITEVENDAS.QTD) * AVG(ITEVENDAS.PRECO))- (SUM(ITEVENDAS.QTD) * AVG(ESTOQUE.PRECO_CUSTO)) AS LUCRO,
VENDAS.VENDEDOR,
AVG ((SUM(ITEVENDAS.QTD) * AVG(ITEVENDAS.PRECO))- (SUM(ITEVENDAS.QTD) * AVG(ESTOQUE.PRECO_CUSTO))) AS MEDIA
----Esse de média acima que nao está funcionando)
FROM ITEVENDAS,EST_ADICIONAIS,ESTOQUE, VENDAS
WHERE ITEVENDAS.CODIGO=EST_ADICIONAIS.CODIGO AND
ITEVENDAS.CODIGO=ESTOQUE.CODIGO AND
VENDAS.NOTA=ITEVENDAS.NOTA AND
ITEVENDAS.CANCELADO=0 AND
VENDAS.VENDEDOR=1 AND
ITEVENDAS.EMISSAO>='01/01/2015' AND
ITEVENDAS.EMISSAO<='12/31/2015'
GROUP BY
ITEVENDAS.CODIGO,
ESTOQUE.NOME,
VENDAS.VENDEDOR
Tiago Rodrigues
Posts
30/10/2015
Marcos P
Qual banco de dados ?
Quando você diz que esse cálculo não funciona, é porque o banco gera algum erro ou simplesmente o valor é calculado errado ?
Substituindo as variáveis de sua própria consulta, no cálculo da média... temos :
AVG ((QTD_VENDA * MEDIA_PRECO_VENDA)) - (TOTAL_CUSTO_MEDIO)) AS MEDIA
É realmente esse código que você deseja fazer ?
30/10/2015
Tiago Rodrigues
30/10/2015
Marcos P
04/11/2015
Fernando Vicari
Você pode utilizar subquery. Abaixo coloquei um código de exemplo, porém não testei.
SELECT CODIGO, NOME, QTD_VENDA, MEDIA_PRECO_CUSTO, MEDIA_PRECO_VENDA, TOTAL_CUSTO_MEDIO, TOTAL_PRECO_VENDA, LUCRO, VENDEDOR, AVG((QTD_VENDA * MEDIA_PRECO_VENDA)- (QTD_VENDA * MEDIA_PRECO_CUSTO)) AS MEDIA FROM (SELECT ITEVENDAS.CODIGO, ESTOQUE.NOME, SUM(ITEVENDAS.QTD) AS QTD_VENDA, AVG(ESTOQUE.PRECO_CUSTO) AS MEDIA_PRECO_CUSTO, AVG(ITEVENDAS.PRECO) AS MEDIA_PRECO_VENDA, SUM(ITEVENDAS.QTD) * AVG(ESTOQUE.PRECO_CUSTO) AS TOTAL_CUSTO_MEDIO, SUM(ITEVENDAS.QTD) * AVG(ITEVENDAS.PRECO) AS TOTAL_PRECO_VENDA, (SUM(ITEVENDAS.QTD) * AVG(ITEVENDAS.PRECO))- (SUM(ITEVENDAS.QTD) * AVG(ESTOQUE.PRECO_CUSTO)) AS LUCRO, VENDAS.VENDEDOR FROM ITEVENDAS,EST_ADICIONAIS,ESTOQUE, VENDAS WHERE ITEVENDAS.CODIGO=EST_ADICIONAIS.CODIGO AND ITEVENDAS.CODIGO=ESTOQUE.CODIGO AND VENDAS.NOTA=ITEVENDAS.NOTA AND ITEVENDAS.CANCELADO=0 AND VENDAS.VENDEDOR=1 AND ITEVENDAS.EMISSAO>='01/01/2015' AND ITEVENDAS.EMISSAO<='12/31/2015' GROUP BY ITEVENDAS.CODIGO, ESTOQUE.NOME, VENDAS.VENDEDOR) GROUP BY CODIGO, NOME, QTD_VENDA, MEDIA_PRECO_CUSTO, MEDIA_PRECO_VENDA, TOTAL_CUSTO_MEDIO, TOTAL_PRECO_VENDA, LUCRO, VENDEDOR
Clique aqui para fazer login e interagir na Comunidade :)