Select Vendas.Codigo::Char(10) AS Venda, Produtos.Referencia::Char(12) AS Referencia, CASE WHEN LENGTH(Movimento.Produto) > 6 THEN (Produtos.Codigo||'-'||Substr(Movimento.Produto,7,2)) ELSE Produtos.Codigo END::CHAR(12) AS Produtos, Movimento.Produto As CodPro, Produtos.Descricao::Char(30) AS Descricao, Sum(Case When Movimento.Movimento = 'S'::Char Then Movimento.Quantidade Else - Movimento.Quantidade End) As QtVenda, Sum(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)+(Vendas.vManual*(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)*100)/(Vendas.Total-Vendas.vManual)/100))::Numeric(12,2) as Total, Sum(Movimento.Quantidade*Movimento.Custo)::Numeric(10,2) As Custo, CASE when Sum(Movimento.Quantidade*Movimento.Custo) < Sum(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)+(Vendas.vManual*(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)*100)/(Vendas.Total-Vendas.vManual)/100)) then (Sum(Movimento.Quantidade*Movimento.Custo)/ (Sum(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)+(Vendas.vManual*(((Movimento.Base*Movimento.Quantidade)+Movimento.Desconto)*100)/(Vendas.Total-Vendas.vManual)/100)) - Sum(Movimento.Frete)))*100 else 0.00 end::Numeric(9,2) as Markup FROM Movimento INNER JOIN Vendas ON SUBSTR(Movimento.Auxiliar,3,8)::CHAR(8)=Vendas.Codigo INNER JOIN Produtos ON SUBSTR(Movimento.Produto,1,6)::CHAR(6)=Produtos.Codigo INNER JOIN Pessoas Empresas ON LPad(Vendas.Empresa,6,'0')::CHAR(6)=Empresas.Codigo INNER JOIN Pessoas Clientes ON Vendas.Cliente=Clientes.Codigo INNER JOIN Pessoas Vendedores ON Vendas.Vendedor=Vendedores.Codigo INNER JOIN Condicoes ON Vendas.Condicoes=Condicoes.Codigo LEFT JOIN Marcas ON Produtos.Marca=Marcas.Codigo LEFT JOIN Pessoas Fornecedores ON Produtos.Fornecedor=Fornecedores.Codigo LEFT JOIN Pessoas Avalista ON Vendas.Avalista=Avalista.Codigo LEFT JOIN Departamentos ON Produtos.Departamento=Departamentos.Codigo LEFT JOIN Grupos ON Produtos.Grupo=Grupos.Codigo LEFT JOIN SubGrupos ON Produtos.SubGrupo=SubGrupos.Codigo LEFT JOIN Grades ON Produtos.Grade=Grades.Codigo LEFT JOIN Colecoes ON Produtos.Colecao=Colecoes.Codigo Where Case When Vendas.Tipo='03' Then Vendas.Status='P' Else Vendas.Status='S' End And Case When Vendas.Tipo='03' Then (Movimento.Operacao='VC') Else (Movimento.Operacao='VE' Or Movimento.Operacao='DV') End And Movimento.Estoque=True And cFiltro Group by ReportGroup, Empresas.Apelido, Vendas.Codigo, Produtos.Codigo, Produtos.Referencia, Produtos.Descricao, Movimento.Produto