SELECT TOP 100 IdProduto,

IdSetorProduto,

Código_Produto as Codigo,

Descrição as Descricao,

Tamanho,

 Setor,

 

/*Preço Médio*/

(case when Sum((case when Preco_Item>0 then Qtde else -1*Qtde end))<>0 then Sum(Preco_Item*Qtde)/Sum((case when Preco_Item>0 then Qtde else -1*Qtde end)) else 0 end) as Preco,

 

Sum((case when Preco_Item>0 then Qtde else -1*Qtde end)) as QtdeVendido,

 

Sum(Desconto) as Desconto,

Sum(Acrescimo) as Acrescimo,

Sum(Frete) as Frete,

Sum(Preco_Item*Qtde)-Sum(Desconto)+Sum(Acrescimo)+Sum(Frete) as Total

FROM

(

SELECT Estq_cadProdutos.IdProduto,

 Estq_cadProdutos.IdSetorProduto,

 Estq_cadSetores.Descricao as Setor,

 POV_cadPOV.Codigo as Venda,

  POV_cadPOV.Data,

   POV_cadItemPOV.Qtde,

   POV_cadItemPOV.Valor as Preco_Item,

 

/*---------------- Desconto --------------------- */

 

(

(CASE WHEN (SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<>0 THEN

(((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)

/

(SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV))

ELSE 0 END)

*POV_cadPOV.Desconto)

 

+ POV_cadItemPOV.Desconto AS Desconto,

/*----------------------------------------------- */

 

 

/*---------------- Acréscimo --------------------- */

(

(CASE WHEN (SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<>0 THEN

(((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)

/

(SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)

)

ELSE 0 END)

*POV_cadPOV.Acrescimo)

 

 +POV_cadItemPOV.Acrescimo AS Acrescimo,

/*----------------------------------------------- */

 

/*-------------------- Frete --------------------- */

(

(CASE WHEN (SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<> 0 THEN

(((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)

/

(SELECT Sum(Valor*Qtde)-Sum(Desconto)+Sum(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)

) ELSE 0 END)

*POV_cadPOV.Frete) AS Frete,

 /*----------------------------------------------- */

 

(SELECT Descricao FROM Estq_cadClassProd5 WHERE Estq_cadClassProd5.IdClassProd5=POV_cadItemPOV.IdClassProd5) as Tamanho,

Estq_cadProdutos.Codigo as Código_Produto,

 Estq_cadProdutos.Descricao as Descrição,

 

 

 /*-------------------- Lucro ------------------------ */

(SELECT Sum(CustoTotal)/Sum(Qtde) as CustoMedio FROM Estq_auxMovimentoEstoque

WHERE Sentido=1 AND IdProduto=POV_cadItemPOV.IdProdServ)*POV_cadItemPOV.Qtde as Custo_Médio,

 (Estq_cadProdutos.PrecoVenda*POV_cadItemPOV.Qtde-(CASE when (SELECT Sum(Valor*Qtde)

FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)-

(SELECT Sum(POV_cadItemPOV.Desconto) FROM POV_cadItemPOV WHERE POV_cadItemPOV.IdPOV=POV_cadPOV.IdPOV)

+

(SELECT Sum(POV_cadItemPOV.Acrescimo) FROM POV_cadItemPOV WHERE POV_cadItemPOV.IdPOV=POV_cadPOV.IdPOV)<>0 then ((POV_cadItemPOV.Valor/(SELECT Sum(Valor*Qtde) FROM POV_cadItemPOV

WHERE IdPOV=POV_cadPOV.IdPOV))*POV_cadPOV.Desconto*Qtde)+POV_cadItemPOV.Desconto else 0 end)-((SELECT Sum(CustoTotal)/Sum(Qtde) FROM Estq_auxMovimentoEstoque

WHERE Sentido=1 AND IdProduto=POV_cadItemPOV.IdProdServ)*POV_cadItemPOV.Qtde)) as Lucro

/*--------------------------------------------------- */

 

FROM (((POV_cadPOV INNER JOIN POV_cadItemPOV ON POV_cadPOV.IdPOV = POV_cadItemPOV.IdPOV)

INNER JOIN Usr_cadUsuario ON Usr_cadUsuario.IdUsuario = POV_cadPOV.IdFuncionario) INNER JOIN Estq_cadProdutos ON POV_cadItemPOV.IdProdServ = Estq_cadProdutos.IdProduto)

INNER JOIN Estq_cadSetores ON Estq_cadProdutos.IdSetorProduto=Estq_cadSetores.IdSetorProduto

 

WHERE POV_cadPOV.Tipo=3 AND LojaId=$IDLOJA$ AND POV_cadItemPOV.Tipo=1 AND POV_cadPOV.Estornado=0 ) as Consulta

where Data>=DATAINICIAL() AND Data<=DATAFINAL() GROUP BY Código_Produto,

Descrição,

Tamanho,

Setor,

IdProduto,

IdSetorProduto

order by QtdeVendido DESC