Fórum Erro na execução de um codigo em SQL #536082
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
Curtir tópico
+ 0Posts
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 ?
Gostei + 0
30/10/2015
Tiago Rodrigues
Gostei + 0
30/10/2015
Marcos P
Gostei + 0
31/10/2015
Tiago Rodrigues
Gostei + 0
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, VENDEDORGostei + 0
Clique aqui para fazer login e interagir na Comunidade :)