Advertisement
adeilsoncs

Produtos Vendidos com Custo (Okane)

Sep 10th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 4.45 KB | None | 0 0
  1. --produtos vendidos
  2.  
  3. SELECT TOP 100 IdProduto,
  4. IdSetorProduto,
  5. Código_Produto AS Codigo,
  6. Descrição AS Descricao,
  7. Tamanho,
  8.  Setor,
  9.  Custo,
  10.  
  11. /*Preço Médio*/
  12. (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,
  13.  
  14. SUM((CASE WHEN Preco_Item>0 THEN Qtde ELSE -1*Qtde END)) AS QtdeVendido,
  15.  
  16. SUM(Desconto) AS Desconto,
  17. SUM(Acrescimo) AS Acrescimo,
  18. SUM(Frete) AS Frete,
  19. SUM(Preco_Item*Qtde)-SUM(Desconto)+SUM(Acrescimo)+SUM(Frete) AS Total  
  20. FROM
  21. (
  22. SELECT Estq_cadProdutos.IdProduto,
  23.  Estq_cadProdutos.IdSetorProduto,
  24.  Estq_cadSetores.Descricao AS Setor,
  25.  POV_cadPOV.Codigo AS Venda,
  26.   POV_cadPOV.DATA,
  27.    POV_cadItemPOV.Qtde,
  28.    POV_cadItemPOV.Valor AS Preco_Item,
  29.  
  30. /*---------------- Desconto --------------------- */
  31.  
  32. (
  33. (CASE WHEN (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<>0 THEN
  34. (((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)
  35. /
  36. (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV))
  37. ELSE 0 END)
  38. *POV_cadPOV.Desconto)
  39.  
  40. + POV_cadItemPOV.Desconto AS Desconto,
  41. /*----------------------------------------------- */
  42.  
  43.  
  44. /*---------------- Acréscimo --------------------- */
  45. (
  46. (CASE WHEN (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<>0 THEN
  47. (((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)
  48. /
  49. (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)
  50. )
  51. ELSE 0 END)
  52. *POV_cadPOV.Acrescimo)  
  53.  
  54.  +POV_cadItemPOV.Acrescimo AS Acrescimo,
  55. /*----------------------------------------------- */
  56.  
  57. /*-------------------- Frete --------------------- */
  58. (
  59. (CASE WHEN (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)<> 0 THEN
  60. (((POV_cadItemPOV.Valor*POV_cadItemPOV.Qtde)-POV_cadItemPOV.Desconto+POV_cadItemPOV.Acrescimo)
  61. /
  62. (SELECT SUM(Valor*Qtde)-SUM(Desconto)+SUM(Acrescimo) FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)
  63. ) ELSE 0 END)
  64. *POV_cadPOV.Frete) AS Frete,
  65.  /*----------------------------------------------- */
  66.  
  67. (SELECT Descricao FROM Estq_cadClassProd5 WHERE Estq_cadClassProd5.IdClassProd5=POV_cadItemPOV.IdClassProd5) AS Tamanho,
  68. Estq_cadProdutos.Codigo AS Código_Produto,
  69.  Estq_cadProdutos.Descricao AS Descrição,
  70.  
  71.  /* Custo do produto */
  72.    (SELECT TOP 1 (custoTotal/Qtde) AS Custo FROM Estq_auxMovimentoEstoque
  73.  WHERE
  74.  Estq_auxMovimentoEstoque.IdProduto = Estq_cadProdutos.IdProduto
  75.  AND Sentido=1 AND custoTotal IS NOT NULL AND custoTotal > 0 ORDER BY DATA DESC, IdMovimentoEstoque DESC) AS Custo,
  76.  /* ---------------- */
  77.  
  78.  /*-------------------- Lucro ------------------------ */
  79. (SELECT SUM(CustoTotal)/SUM(Qtde) AS CustoMedio FROM Estq_auxMovimentoEstoque  
  80. WHERE Sentido=1 AND IdProduto=POV_cadItemPOV.IdProdServ)*POV_cadItemPOV.Qtde AS Custo_Médio,
  81.  (Estq_cadProdutos.PrecoVenda*POV_cadItemPOV.Qtde-(CASE WHEN (SELECT SUM(Valor*Qtde)  
  82. FROM POV_cadItemPOV WHERE IdPOV=POV_cadPOV.IdPOV)-
  83. (SELECT SUM(POV_cadItemPOV.Desconto) FROM POV_cadItemPOV WHERE  POV_cadItemPOV.IdPOV=POV_cadPOV.IdPOV)
  84. +
  85. (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  
  86. WHERE IdPOV=POV_cadPOV.IdPOV))*POV_cadPOV.Desconto*Qtde)+POV_cadItemPOV.Desconto ELSE 0 END)-((SELECT SUM(CustoTotal)/SUM(Qtde) FROM Estq_auxMovimentoEstoque  
  87. WHERE Sentido=1 AND IdProduto=POV_cadItemPOV.IdProdServ)*POV_cadItemPOV.Qtde)) AS Lucro  
  88. /*--------------------------------------------------- */
  89.  
  90. FROM (((POV_cadPOV INNER JOIN POV_cadItemPOV ON POV_cadPOV.IdPOV = POV_cadItemPOV.IdPOV)  
  91. INNER JOIN Usr_cadUsuario ON Usr_cadUsuario.IdUsuario = POV_cadPOV.IdFuncionario)  
  92. INNER JOIN Estq_cadProdutos ON POV_cadItemPOV.IdProdServ = Estq_cadProdutos.IdProduto)  
  93. INNER JOIN Estq_cadSetores ON Estq_cadProdutos.IdSetorProduto=Estq_cadSetores.IdSetorProduto  
  94.  
  95. WHERE POV_cadPOV.Tipo=3 AND POV_cadItemPOV.Tipo=1 AND POV_cadPOV.Estornado=0 ) AS Consulta
  96. WHERE Data>=DATAINICIAL() AND Data<=DATAFINAL() GROUP BY Código_Produto,
  97. Descrição,
  98. Tamanho,
  99. Setor,
  100. Custo,
  101. IdProduto,
  102. IdSetorProduto
  103. ORDER BY QtdeVendido DESC
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement